GraphQL 는 유형 시스템을 기반으로 하는 조회 언어입니다. GraphQL 유형은 지원되는 오브젝트, 오브젝트와 연관되는 필드, 조회할 수 있는 항목 및 GraphQL 스키마에서 모두 정의되는 방법을 정의합니다. GraphQL API를 효과적으로 사용하려면 Supply Chain Intelligence
Suite 데이터 모델을 잘 이해하고 있어야 합니다.
시작하기 전에
- GraphQL를 처음 사용하는 경우 GraphQL API 기본에 익숙해질 때까지 GraphQL 튜토리얼 을 완료하십시오.
- REST 클라이언트 (예: 불면증) 를 설치하십시오.
- 브라우저가 GraphiQL 도구에 대해 올바르게 구성되었는지 확인하십시오.
이 태스크에 대한 정보
Supply Chain Intelligence
Suite 데이터 모델 스키마를 학습하는 가장 좋은 방법은 GraphQL 검사를 사용하는 것입니다. 스키마 자체 검사는 정의된 오브젝트, 유형과 연관된 필드, 열거 값, 지원되는 조회 유형 및 조회에 사용할 수 있는 매개변수와 같은 스키마 파트에 대한 질문이 있을 때마다 도움이 될 수 있습니다.
다음 태스크를 학습합니다.
- 지원되는 모든 유형 (예: 오브젝트, 인터페이스, 열거) 을 찾는 방법입니다.
- 각 유형의 세부사항 (예: 오브젝트의 필드 또는 열거 값) 을 찾는 방법입니다.
- 지원되는 조회 및 조회 세부사항 (예: 매개변수).
- 지원되는 변형입니다.
- 자체 검사 결과를 기반으로 GraphQL 조회를 구성하는 방법입니다.
GraphiQL에서 문서 탐색기를 사용할 수 있습니다.
GraphiQL 도구는 자체 검사 로직을 사용하여 UI에서 대화식 스키마 탐색기를 빌드합니다. 브라우저에서 이 URL을 붙여넣어 GraphiQL 인터페이스로 이동하십시오.
https://api.ibm.com/infohub/run/graph/na그리고 문서 링크를 참고하십시오.
문서 링크를 클릭하면 GraphiQL 가 GraphQL API에 스키마 자체 검사 요청을 전송한 후 사용자가 탐색할 수 있는 문서 오브젝트 모델 (DOM) 로 응답을 구문 분석합니다. 그런 다음 문서 탐색기 가 모델의 최상위 레벨 오브젝트 목록과 함께 렌더링됩니다. 이 예제에서는 query 및 mutation입니다.
이 보기에서 드릴 다운하여 모든 오브젝트 및 해당 속성을 탐색할 수 있습니다. 예를 들어, 조회로 드릴 인한 후 보기에는 조회에 대한 eventParams 속성의 BusinessEventInput 값이 표시됩니다.
프로시저
- GraphQL Visual Editor에서 스키마에 정의된 모든 유형을 검사합니다.
- 브라우저에 다음 URL을 입력하여 GraphiQL Visual Editor로 이동하십시오.
https://api.ibm.com/infohub/run/graph/na
- 다음 GraphQL 조회를 편집기의 왼쪽에 붙여넣고 실행을 클릭하십시오.
query {
__schema {
types {
name
description
kind
}
queryType {
fields {
name
description
}
}
}
}
조회가 완료되면 편집기의 오른쪽에서 조회 응답을 볼 수 있습니다. 응답을 살펴보고 OBJECT, INTERFACE및 ENUM의 일부 예제를 찾으십시오. OBJECT 유형은
GraphQL API의 기초입니다. 각 OBJECT에는 데이터를 노출하고 이름으로 조회할 수 있는 필드가 있습니다. INTERFACE는 OBJECT 유형으로 구현될 수 있는 필드 목록입니다. ENUM 유형은 이산 값 세트입니다.
- 응답의 맨 아래로 이동하여 지원되는 조회 목록을 보십시오.
- 선택사항: GraphiQL Visual Editor에서 오른쪽 상단 구석에 있는 링크를 사용하여 스키마 정의를 검사하십시오.
- 불면증에서 동일한 GraphQL 스키마 조회를 실행하십시오.
- 불면증을 열고
Get Intelligence Suite schema
info라는 새 요청을 시작하십시오.
- 목록에서 POST 를 선택하고 다음 URL을 입력하십시오.
https://api.ibm.com/infohub/run/graph/na
- 요청 본문 섹션에서
GraphQL 를 선택하고 이전 단계에서 동일한 조회를 복사하여 QUERY 상자에 붙여넣으십시오.
- 불면증에서 SSL 인증서 확인을 사용 안함으로 설정하십시오.
- 전송 을 클릭하고 요청의 응답 섹션에서 응답을 확인하십시오.
응답은 이전 단계에서 수신된 응답과 동일해야 합니다.
- 유형 세부사항을 검사하십시오.
- 불면증에 다음 조회를 입력하십시오.
query {
__type(name: "BusinessObjectsCursor") {
...FullType
}
}
fragment FullType on __Type {
kind
name
description
fields(includeDeprecated: true) {
name
description
args {
...InputValue
}
type {
...TypeRef
}
isDeprecated
deprecationReason
}
inputFields {
...InputValue
}
interfaces {
...TypeRef
}
enumValues(includeDeprecated: true) {
name
description
isDeprecated
deprecationReason
}
possibleTypes {
...TypeRef
}
}
fragment InputValue on __InputValue {
name
description
type {
...TypeRef
}
defaultValue
}
fragment TypeRef on __Type {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}
- 수신된 응답을 검사하십시오.
BusinessObjectsCursor is an OBJECT type, which implements INTERFACE Cursor. 정의된 세 개의 필드 ( edges, pageInfo및 totalCount) 가 있습니다. 필드 edges 은 (는) OBJECT BusinessObjectEdge의 LIST입니다. INTERFACE를 알면 응답에서 서로 다른 OBJECT 유형으로 조회를 능률화하는 데 도움이 될 수 있습니다.
- 조회의 유형 이름을 1 또는 2단계에서 선택한 일부 다른 유형으로 바꾸고 조회를 다시 실행한 후 응답을 확인하여 유형 정의를 이해하십시오.
- 인터페이스와 연관된 유형을 검사합니다.
3 단계에 표시된 조회를 모든 유형에 사용할 수 있지만 특정 유형 (예: INTERFACE 또는 ENUM) 에 대해 더 단순한 응답을 선호할 수 있습니다. 특정 INTERFACE를 구현하는 OBJECTS의 정리 목록을 가져올 수 있습니다.
GraphQL API 클라이언트 관점에서 OBJECT가 구현하는 INTERFACE를 알면 조회 응답을 간소화하는 데 도움이 될 수 있습니다.
- 다음 쿼리를 사용하여 동일한 INTERFACE를 구현하는 모든 OBJECTS를 찾으십시오.
query {
__type(name: "Cursor") {
name
kind
description
possibleTypes {
name
kind
description
}
}
}
응답은
Supply Chain Intelligence
Suite에 정의된 모든
Cursor OBJECTS를 표시합니다.
- 1 또는 2단계에서 식별한 다른 인터페이스를 선택하여 조회에 넣고 이를 실행하여 연관된 모든 오브젝트를 찾으십시오.
- ENUM값을 검사하십시오.
Supply Chain Intelligence
Suite 는 스키마에서 다수의 ENUM을 사용합니다. ENUM 유형은 이산 값 세트를 정의합니다. 예를 들어, Supply Chain Intelligence
Suite ENUM 유형 BusinessObjectType 은 스키마에 정의된 모든 비즈니스 오브젝트의 목록을 제공합니다. 이 단계는 ENUM의 값 목록을 가져오기 위한 조회를 표시합니다.
- 다음 조회를 선택한 도구에 복사하여 붙여넣고 조회를 실행하십시오.
query {
__type(name: "BusinessObjectType") {
name
kind
description
enumValues {
name
description
}
}
}
결과를 확인하여 ENUM
BusinessObjectType아래에 나열된 모든 오브젝트 유형을 확인하십시오. 이 목록은 API에서 지원되는 비즈니스 데이터 오브젝트를 표시합니다.
- 유형을 1 또는 2 단계에서 선택한 다른 ENUM 유형으로 바꾸고 조회를 다시 실행하여 해당 ENUM에 대한 값 목록을 확인하십시오.
- 조회 정의를 검사하십시오.
지원되는 모든
GraphQL 조회는 스키마의 특수 유형
Query 에 정의되어 있습니다.
4 단계에서 정의된 조회를 사용하여 관련 정보를 가져올 수 있습니다.
- 불면증에서 다음 GraphQL 조회를 실행하십시오.
query {
__type(name: "Query") {
...QueryType
}
}
fragment QueryType on __Type {
fields {
name
description
type {
name
kind
}
args {
name
description
type {
name
kind
}
}
}
}
응답을 검사하십시오. 지원되는 각 조회는 응답에 필드로 표시됩니다. 현재 총 네 개의 조회가 스키마에 정의되어 있습니다. 조회 중 하나는
BusinessEventCursor를 리턴하는
businessObjectEvents입니다. 이 조회는 5개의 서로 다른 매개변수를 사용할 수 있으며 그 중 하나는
advancedFilter OBJECT 유형
BooleanExp입니다.
- 비정상 변경 정의를 검사합니다.
변형은 API에서 지원하는 모든 변형을 정의하는 다른 스키마 유형입니다. 데이터를 페치하는 데 사용되는
GraphQL 조회 API와 달리, 서버의 데이터를 수정하기 위해
GraphQL 변형 API가 제공됩니다.
6단계에서 사용되는 조회에서
Query 를
Mutation 로 대체하고 모든 InforHub 변형 정의 (즉,
Supply Chain Intelligence
Suite GraphQL API를 통해 지원되는 데이터 조작의 종류) 를 체크아웃하십시오.
- Supply Chain Intelligence
Suite을 구성하십시오.
이제 지원되는 모든 유형을 찾는 방법과 각 유형의 세부사항을 찾는 방법을 알 수 있습니다. 첫 번째 Supply Chain Intelligence
Suite GraphQL 조회 구성을 시작하기 위한 충분한 정보를 포함하는 INTERFACE, ENUM, Query, Mutation에 대한 샘플 조회가 제공되었습니다.
- 6 단계의 조회를 사용하여
businessRuleEvents에 대한 조회의 정의를 찾으십시오.
- 3 단계의 조회를 사용하여 응답 유형의 세부사항을 찾으십시오.
- 3 단계의 조회를 사용하여 각 조회 매개변수의 세부사항을 찾으십시오.
- 이전 단계의 결과에 따라
businessRuleEvents에 대한 GraphQL 조회를 구성하십시오.