pted REST API 작성

개요



ServiceNow 테이블 API를 이용하면 간단하게 테이블의 데이터를 취득하거나 갱신하는 것이 가능. 그러나 다음과 같은 제한 사항이 있습니다.
  • 참조 필드의 경우 sys_id를 지정해야합니다.
  • 단일 호출로 하나의 테이블에서 데이터 만 검색 할 수 있습니다.
  • API마다 보안 (ACL)을 설정할 수 없습니다.

    예를 들어 테이블 API에서 지정한 인시던트 번호의 티켓에 첨부된 파일을 다운로드하려면 몇 번의 호출이 필요합니다. 한 번의 호출로 파일을 다운로드하려면 Scripted REST API를 만듭니다.
    이번은 보다 Scripted REST API의 기본을 배우기 위해서 지정한 메일 주소의 유저 정보를 돌려주는 스크립트를 작성합니다.

    Scripted REST API



    애플리케이션 네비게이터에서 Scripted REST API를 열고 다음과 같이 설정합니다.


    Resources 탭의 New 버튼을 눌러 실행할 스크립트를 작성합니다. 이번에는 URI 이메일 주소를 지정합니다.


    URL의 매개변수로 지정할 수 있도록 하려면 이전 페이지의 'Query Parameters'를 매개변수를 작성하십시오.

    Scripted REST API 리소스 스크립트



    자원 스크립트에 모든 코드를 작성할 수도 있지만, 유지보수성을 고려하여 테이블 검색 스크립트를 스크립트 포함에 작성하여 Scripted REST API 리소스에서 스크립트를 호출할 수 있습니다.
    (function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
        return new getUserDetails().getdetails(request.pathParams.userid);
    })(request, response);
    

    스크립트 포함



    많은 경우는 클라이언트로부터 불려 갑니다만, 이번은 서버측에서의 호출이 되므로 「Client callable」의 체크는 제외합니다.

    var getUserDetails = Class.create();
    getUserDetails.prototype = {
        initialize: function() {},
    
        getdetails: function(email) {
            var userInfo = [];
            try {
                var grUser = new GlideRecord('sys_user');
                if (grUser.get('email', email)) {
                    userInfo.push({
                        'name': grUser.name,
                        'email': grUser.email,
                        'company': grUser.company.name
                    });
                }
                return userInfo;
            } catch (e) {
                gs.error("ERROR=", e);
            }
        },
    
        type: 'getUserDetails'
    };
    

    실행



    REST API Explorer에서 실행하면 다음과 같이 JSON 메시지가 리턴됩니다.
    {
      "result": [
        {
          "name": "Lucius Bagnoli",
          "email": "[email protected]",
          "company": "ACME Japan"
        }
      ]
    }
    
  • 좋은 웹페이지 즐겨찾기