JSON 데이터 검색 API
인스턴스에 HTTPS GET 요청을 실행하여 데이터를 쿼리합니다.
기본적으로 GET 요청은 매개 변수가 있는 경우 sysparm_sys_id get 함수로 해석됩니다. 그렇지 않으면 getRecords 함수로 해석됩니다. URL 매개 변수를 sysparm_action=get지정할 수도 있습니다. 쿼리 응답은 항상 기록의 기록 해시로 캡슐화되며, 여기서 각 개별 기록의 값은 필드 이름으로 해시됩니다.
참조 변수에 대한 표시 값 반환
get 또는 getRecords 함수에서 레코드를 가져오면 해당 레코드와 연결된 모든 필드가 반환됩니다. 필드는 종종 다른 테이블에 대한
sys_id 포함하는 참조 필드입니다. 기본 시스템 동작은 해당 필드의 sys_id 값을 반환하는 것입니다. 필드의 표시 값을 반환하려면 다음 옵션 중 하나를 사용하십시오.- glide.json.return_displayValue 속성을 시스템 속성에 추가하면 모든 JSON 요청이 참조 필드에 대한 표시 값을 반환합니다.
- 매개변수 displayvalue=true 를 JSON 요청 URL에 추가하면 해당 매개변수가 있는 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
가져오기
매개변수에
sys_idsysparm_sys_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