JSON 데이터 검색 API

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기7분
  • 인스턴스에 HTTPS GET 요청을 실행하여 데이터를 쿼리합니다.

    기본적으로 GET 요청은 매개 변수가 있는 경우 sysparm_sys_id get 함수로 해석됩니다. 그렇지 않으면 getRecords 함수로 해석됩니다. URL 매개 변수를 sysparm_action=get지정할 수도 있습니다 . 쿼리 응답은 항상 기록의 기록 해시로 캡슐화되며, 여기서 각 개별 기록의 값은 필드 이름으로 해시됩니다.

    참조 변수에 대한 표시 값 반환

    get 또는 getRecords 함수에서 기록을 가져오면 해당 기록과 연결된 모든 필드가 반환됩니다. 이 필드는 보통 다른 테이블에 대한 sys_id 포함하는 참조 필드입니다. 기본 시스템 동작은 해당 필드의 sys_id 값을 반환하는 것입니다. 필드의 표시 값을 반환하려면 다음 옵션 중 하나를 사용합니다.
    • 시스템 속성에 glide.json.return_displayValue 속성을 추가하면 모든 JSON 요청이 참조 필드에 대한 표시 값을 반환합니다.
    • JSON 요청 URL에 매개변수를 displayvalue=true 추가하면 해당 매개변수가 있는 JSON 요청은 참조 필드에 대한 sys_id 대신 표시 값을 반환합니다. JSON URL은 다음과 같습니다.
      https://<instance name>.service-now.com/incident.do?JSON&sysparm_action=getRecords&sysparm_query=active=true^category=hardware&displayvalue=true
      
    • JSON 요청 URL에 매개변수를 displayvalue=all 추가하고 해당 매개변수를 사용하여 JSON 요청은 참조 필드에 대한 표시 값과 sys_id 반환합니다. 표시 값 필드에 대한 응답 요소 이름에는 dv_(예: dv_caller_id)가 접두사로 표시됩니다.

    변수 가져오기

    displayvariables 쿼리 매개변수를 사용하여 항목 기록과 서비스 카탈로그 연결된 변수 배열을 반환합니다. 변수를 가져오려면 JSON 요청 URL에 매개변수를 displayvariables=true 추가합니다. 예를 들어 다음은 변수를 포함하는 서비스 카탈로그 JSON 형식으로 기록을 검색하는 URL입니다.

    https://<your-instance>.servicenow.com/sc_req_item.do?JSONv2&sysparm_action=getRecords&sysparm_query=sys_id=5018da81742bd410f8771974894916fe&displayvariables=true
    다음은 기록의 여러 행으로 구성된 변수 세트를 표시하는 예제 응답입니다.
    {
       "records":[
          {
             …
             "variables":[
                {
                   "display_value":[
                      {
                         "quantity":"1",
                         "color":"Black",
                         "device_type":"Apple iPhone 8",
                         "storage":"64GB"
                      },
                      {
                         "quantity":"1",
                         "color":"Black",
                         "device_type":"Apple iPhone 8",
                         "storage":"64GB"
                      }
                   ],
                   "columns_meta":[
                      {
                         "name":"device_type",
                         "label":"Device Type",
                         "id":"da7d3f3241411300964ff05369414eca",
                         "type":5,
                         "order":"0"
                      },
                      {
                         "name":"storage",
                         "label":"Storage",
                         "id":"691e337241411300964ff05369414e31",
                         "type":5,
                         "order":"1"
                      },
                      {
                         "name":"color",
                         "label":"Color",
                         "id":"e89fb77241411300964ff05369414e74",
                         "type":5,
                         "order":"2"
                      },
                      {
                         "name":"quantity",
                         "label":"Quantity",
                         "id":"2d5f737241411300964ff05369414eaf",
                         "type":5,
                         "order":"3"
                      }
                   ],
                   "max_rows":50,
                   "name":"mobile_devices_set",
                   "id":"e84d3f3241411300964ff05369414e3e",
                   "type":"one_to_many",
                   "value":[
                      {
                         "quantity":"1",
                         "color":"black",
                         "device_type":"iphone8",
                         "storage":"64GB"
                      },
                      {
                         "quantity":"1",
                         "color":"black",
                         "device_type":"iphone8",
                         "storage":"64GB"
                      }
                   ],
                   "row_count":2
                },
                {
                   "question_text":"Department",
                   "name":"department",
                   "type":8,
                   "value":"Development",
                   "order":100
                },
                {
                   "question_text":"Who is this request for?",
                   "name":"requested_for",
                   "type":8,
                   "value":"System Administrator",
                   "order":100
                },
                {
                   "question_text":"When do you need this?",
                   "name":"needed_by",
                   "type":5,
                   "value":"Today",
                   "order":200
                },
                {
                   "question_text":"Business Justification",
                   "name":"business_justification",
                   "type":2,
                   "value":"Example justification",
                   "order":200
                }
             ],
           …
          }
       ]
    }

    응답의 키는 다음과 같이 정의됩니다.

    설명
    display_value 여러 행의 변수 세트 질문 표시 값입니다. 여러 행의 변수 세트에서만 반환됩니다.
    columns_meta 필드의 sys_id 및 이름과 같은 여러 행의 변수 세트 메타데이터의 배열입니다. 변수에 여러 필드가 포함된 경우에만 반환됩니다.
    max_rows 여러 행의 변수 세트에 허용되는 최대 행입니다. 여러 행의 변수 세트에서만 반환됩니다.
    이름 질문 이름입니다.
    ID 여러 행의 변수 세트의 Sys_id입니다. 여러 행의 변수 세트에서만 반환됩니다.
    유형 질문의 유형입니다.
    질문 값입니다.
    row_count 여러 행의 변수 세트에서 현재 행의 수입니다. 여러 행의 변수 세트에서만 반환됩니다.
    question_text 질문 레이블입니다. 단일 행 변수 세트와 함께 반환됨.
    순서 질문의 순서입니다.

    기록 순서 제어

    JSON 응답에 기록이 표시되는 순서를 제어할 수 있습니다. 순서를 설정하려면 URL로 인코딩된 쿼리에서 ORDERBY 또는 ORDERBYDESC 절을 사용합니다. 예:

    sysparm_query=active=true^ORDERBYnumber^ORDERBYDESCcategory

    모든 활성 기록을 필터링하고 결과를 번호순으로 오름차순으로 정렬한 다음 범주별로 내림차순으로 정렬합니다. 자세한 내용은 인코딩된 쿼리 문자열을 참조하세요.

    getKeys

    매개변수에 sysparm_query 인코딩된 쿼리 문자열을 지정하여 여러 기록의 sys_id 가져옵니다.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getKeys&sysparm_query=active=true^category=hardware
    

    가져오기

    매개변수에 sysparm_sys_idsys_id 지정하여 직접 기록을 가져옵니다.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_sys_id=9d385017c611228701d22104cc95c371
    
    선택적으로 매개변수를 지정할 수도 있습니다.sysparm_action
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=get&sysparm_sys_id=9d385017c611228701d22104cc95c371
    

    getRecords

    매개변수에 sysparm_query 인코딩된 쿼리 문자열을 지정하여 모든 기록을 가져옵니다.
    https://<instance name>.service-now.com/incident.do?JSONv2&sysparm_action=getRecords&sysparm_query=active=true^category=hardware