---
sourceDocument: Xanadu API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GraphQL API 프레임워크를 사용하여 기록 데이터 쿼리

# GraphQL API 프레임워크를 사용하여 기록 데이터 쿼리 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 5분

사용자 지정 GraphQL API를 생성하여 구성요소 또는 타사 시스템의 레코드 데이터를 쿼리합니다.

예를 들어, SLA와 연결된 케이스를 표시하는 구성요소를 만들 수 있습니다. 를 Next Experience UI 프레임워크 사용하여 필요한 구성요소를 개발하고 케이스 테이블에서 데이터를 정의하는 GraphQL 스키마를 생성하여 플랫폼에서 케이스 데이터에 액세스할 수 있습니다.

구성 요소 개발에 대한 자세한 내용은 [Workspace용 구성 요소 개발을](https://www.servicenow.com/docs/access?context=custom-components&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) 참조하십시오.

## GraphQL의 이점 {#scripted-graph-ql__section_ztd_cf1_dlb}

GraphQL은 클라이언트 측 개발에 최적화된 웹 쿼리 언어입니다. 스크립팅된 GraphQL을 사용하여 다음을 수행할 수 있습니다.  
* 인트로스펙션을 통해 쿼리할 수 있는 필드와 객체를 검색합니다.
* 구성요소에서 필요한 정확한 데이터를 쿼리합니다.
* REST 요청에 대한 여러 엔드포인트와 달리 단일 API에서 가능한 여러 쿼리를 관리합니다.
* 스키마를 공개로 만들어 외부 공급업체 시스템과 통합합니다.
* 구성 요소에서 GraphQL 쿼리를 생성하고 응답을 처리합니다.
{#scripted-graph-ql__ul_pp2_myf_dlb}

## 시작하기 전에 알아야 할 사항 {#scripted-graph-ql__section_yrj_nh1_dlb}

사용자 지정 GraphQL API 생성을 시작하기 전에 다음 사항이 있는지 확인합니다.  
* 스키마를 작성하기 위한 GraphQL 지식
* API 동작을 정의하는 JavaScript 지식
* 웹 구성 요소 개념에 대한 일반적인 지식.
* 기록 데이터를 사용하는 사용자 지정 작업 공간 구성요소입니다.
* 스키마에 ServiceNow 노출하려는 데이터 모델에 대한 이해입니다.
* 필드를 해석기 스크립트의 기록 데이터에 매핑하는 GlideRecord 지식입니다.
{#scripted-graph-ql__ul_zj1_qh1_dlb}

## GraphQL 개요 {#scripted-graph-ql__section_wqr_bf1_dlb}

스크립팅된 GraphQL API 생성에는 다음 부분이 포함됩니다.  

GraphQL 스키마 정의 언어(SDL)
:   GraphQL 쿼리에서 사용할 수 있는 필드의 구조와 데이터 유형을 정의합니다. GraphQL 스크립팅된 스키마 \[sys_graphql_schema\] 테이블의 스키마 스크립트 필드를 사용하여 SDL을 정의할 수 있습니다. SDL은 쿼리 및 변형 작업만 지원합니다.

해결 프로그램
:   각 필드에서 반환되는 데이터를 정의합니다. GraphQL 스크립팅된 해석기 양식의 GraphQL 스크립팅된 해석기 관련 목록에서 각 필드에 대한 해석기를 정의할 수 있습니다.

TypeResolver
:   인터페이스와 공용 구조체를 구체적인 GraphQL 형식으로 해결합니다. 예를 들어, `인시던트` 유형과 `문제` 유형 간의 합집합을 정의할 수 있습니다. typeresolver 스크립트를 사용하여 언제 반환할지 정의합니다. GraphQL 스크립팅된 스키마 양식의 GraphQL 스크립팅된 Typeresolvers 관련 목록에서 타입 해석기를 정의할 수 있습니다.

해결자 매핑
:   확인자를 스키마의 필드에 매핑합니다. GraphQL 스크립팅된 스키마 양식의 GraphQL 스크립팅된 해석기 매핑 관련 목록에서 해석기 매핑을 정의할 수 있습니다.

GraphQL 쿼리 언어에 대한 자세한 내용은 [GraphQL 웹 사이트를](https://graphql.org/) 참조하세요.

GraphQL API에 대한 쿼리를 테스트하려면 통합 GraphQL 테스트 도구인 GraphQL Explorer를 사용할 수 있습니다. 자세한 내용은 [GraphQL 탐색기로 GraphQL API 테스트](https://servicenow-prod.fluidtopics.net/5awKTt~rFcvLAhPYsMEZsw "통합 GraphQL 테스트 도구를 사용하여 GraphQL API에 대한 테스트를 테스트합니다.") 문서를 참조하십시오.

## 제한 {#scripted-graph-ql__section_ymn_b2j_dlb}

다음 GraphQL 기능은 지원되지 않습니다.  
* 구독 운영
* 사용자 지정 스칼라 유형
{#scripted-graph-ql__ul_fns_g3v_flb}

## 내성 {#scripted-graph-ql__section_vxz_rw5_flb}

기본적으로 사용자 지정 스키마에 대한 내성 쿼리는 사용하도록 설정되어 있지 않습니다. 인트로스펙션을 켜려면 을 참조하십시오 [GraphQL 스키마에 대한 내성 쿼리 사용](https://servicenow-prod.fluidtopics.net/LzW4xrBugpNkZ68IIyYFsA "인트로스펙션을 활성화하여 인스턴스의 스키마가 지원하는 쿼리와 변형을 검색합니다.").

## 네임스페이스 {#scripted-graph-ql__section_frl_yyh_dlb}

GraphQL API에는 두 가지 네임스페이스가 있습니다.  

애플리케이션 네임스페이스
:   사용자 지정 애플리케이션의 네임스페이스입니다. 응용 프로그램 네임스페이스에 대한 자세한 내용은 [응용 프로그램 범위를](https://www.servicenow.com/docs/access?context=c_ApplicationScope&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US) 참조하세요.

스키마 네임스페이스
:   모든 쿼리가 고유하도록 하는 스키마의 네임스페이스입니다. 단일 애플리케이션에 여러 스키마 네임스페이스가 있을 수 있습니다.

데이터를 쿼리할 때는 쿼리에 두 네임스페이스를 모두 포함해야 합니다. 예를 들어 다음 쿼리는 다음과 같은 네임스페이스가 있는 데이터를 검색합니다.  
* 애플리케이션 네임스페이스: `x_graph_scope`
* 스키마 네임스페이스: `planet`
{#scripted-graph-ql__ul_ihg_pzh_dlb}  

    query {
      x_graph_scope {
        planet {
          findAll {
            name
            mass
            distance
          }
        }
      }
    }

## 지시문 및 전역 함수 {#scripted-graph-ql__section_zdw_rnc_glb}

`스키마` 지시문 @source

:   GraphQL 필드를 상위 객체의 속성 값에 매핑합니다. 필드에 별도의 해결자 스크립트가 있는 경우 시스템은 상위 객체 대신 확인되는 레코드를 사용합니다.

    스키마 스크립트에서 `@source` 지시문을 사용합니다.

`@defer` 쿼리 지시문
:   쿼리의 뒷부분까지 GraphQL 조각 처리를 연기합니다. 이 쿼리 지시문을 사용하여 조각 내에서 응답이 느린 필드에 대한 데이터 반환을 지연합니다. 지연된 조각의 필드 결과를 다중 파트 응답으로 스트리밍합니다.  
    주:  
    `@defer` 지시문을 사용하려면 GraphQL 클라이언트가 multipart/mixed HTTP 헤더를 허용해야 합니다. 예를 들어 HTTP 헤더를 `Accept: multipart/mixed; boundary="-"`로 설정합니다.

    `@defer` 지시문을 사용하여 사용자의 상호작용 시간을 단축할 수 있습니다. 성능 저하를 일으킬 수 있으므로 이 쿼리 지시문을 무분별하게 적용하지 마십시오. 성능 테스트를 수행하여 성능 향상을 위해 지연할 수 있는 필드를 결정합니다.

해결 프로그램 기능

:   이러한 함수는 전역 env 객체에서 사용할 수 있습니다.

    * getArguments(): 이전 필드의 인수를 반환합니다.
    * getSource(): 상위 객체를 반환합니다.
    {#scripted-graph-ql__ul_t2l_vrx_glb}

    해석기 스크립트에 사용합니다.

Typeresolver 함수

:   이러한 함수는 전역 env 객체에서 사용할 수 있습니다.

    * getArguments(): 이전 필드의 인수를 반환합니다.
    * getObject(): 상위 객체를 반환합니다.
    * getTypeName(): 인터페이스 또는 공용체 유형의 이름을 반환합니다.
    {#scripted-graph-ql__ul_e1w_vrx_glb}

    typeresolver 스크립트에 사용합니다.

## 데모 애플리케이션 {#scripted-graph-ql__section_ubj_21v_flb}

변형 및 쿼리가 있는 데모 GraphQL PTO 달력 스키마를 보려면 GraphQL 프레임워크 데모 애플리케이션 플러그인(com.glide.graphql.framework.demo)을 활성화하십시오.
* **[GraphQL 스키마 생성](https://servicenow-prod.fluidtopics.net/uQr5vyFxH8GdhkI_RaCk1Q#build-graphql-scripted-schema)**   
  GraphQL 스키마를 생성하여 GraphQL 쿼리에서 데이터를 사용할 수 있도록 합니다.
* **[GraphQL 스키마에 대한 내성 쿼리 사용](https://servicenow-prod.fluidtopics.net/LzW4xrBugpNkZ68IIyYFsA)**   
  인트로스펙션을 활성화하여 인스턴스의 스키마가 지원하는 쿼리와 변형을 검색합니다.
* **[GraphQL 탐색기로 GraphQL API 테스트](https://servicenow-prod.fluidtopics.net/5awKTt~rFcvLAhPYsMEZsw)**   
  통합 GraphQL 테스트 도구를 사용하여 GraphQL API에 대한 테스트를 테스트합니다.
* **[구성요소에서 GraphQL 스키마 쿼리](https://servicenow-prod.fluidtopics.net/b210JWHI2Yn2uKbU0KieJA)**   
  스크립팅된 GraphQL 스키마를 쿼리하여 구성요소의 기록 데이터에 액세스합니다.
* **[GraphQL 시스템 속성](https://servicenow-prod.fluidtopics.net/dS3vbKaFqqR_31mqMOQyeA)**   
  GraphQL API 프레임워크 동작을 구성합니다. 예를 들어 스키마에 대한 내성 쿼리를 허용할지 여부를 구성할 수 있습니다.

