AWS AppSync and kintone REST API GraphQL Query Sample
※ 제작 및 삭제 기록은 없습니다.
컨디션
대상
전제 조건
데이터베이스
AppSync에서 연결된 개체 kintone 응용 프로그램의 설정은 다음과 같습니다.
AppSync API 만들기
AppSync 콘솔에서 API 만들기 를 선택합니다.
처음부터 구성 선택
API 이름 입력 - 생성
편집 모드 선택
입력 모드 - 저장 모드 선택
샘플 모드
type DateTime {
type: FiledType
value: AWSDateTime
}
type Description {
type: FiledType
value: String
}
enum FiledType {
RECORD_NUMBER
SINGLE_LINE_TEXT
CREATED_TIME
UPDATED_TIME
}
type Name {
type: FiledType
value: String!
}
type Note {
id: RecordNumber
owner: Owner
name: Name
description: Description
createdAt: DateTime
updatedAt: DateTime
}
type Owner {
type: FiledType
value: String
}
type Query {
singleNote(id: ID!): Record
listNotes: Records
}
type Record {
record: Note
}
type RecordNumber {
type: FiledType
value: ID!
}
type Records {
records: [Note]
}
schema {
query: Query
}
데이터 소스 생성
AppSync에 연결된 데이터 소스에서 HTTP를 선택합니다.
데이터 소스 만들기 를 선택합니다.
데이터 원본 형식 설정'HTTP 단점','HTTP 단점'설정kintone의 하위 영역 URL →'제작'선택
데이터 소스 만들기
해결자 작성
메뉴에서 모드를 선택하고Query 파서에서 부착기를 선택하십시오
데이터 원본 이전 단계에서 만든 데이터 원본 선택
맵 템플릿 만들기
GraphiQL 질의를 HTTP 형식으로 변환하는 매핑 템플릿을 작성합니다.
템플릿 매핑 요청
type DateTime {
type: FiledType
value: AWSDateTime
}
type Description {
type: FiledType
value: String
}
enum FiledType {
RECORD_NUMBER
SINGLE_LINE_TEXT
CREATED_TIME
UPDATED_TIME
}
type Name {
type: FiledType
value: String!
}
type Note {
id: RecordNumber
owner: Owner
name: Name
description: Description
createdAt: DateTime
updatedAt: DateTime
}
type Owner {
type: FiledType
value: String
}
type Query {
singleNote(id: ID!): Record
listNotes: Records
}
type Record {
record: Note
}
type RecordNumber {
type: FiledType
value: ID!
}
type Records {
records: [Note]
}
schema {
query: Query
}
AppSync에 연결된 데이터 소스에서 HTTP를 선택합니다.
데이터 소스 만들기 를 선택합니다.
데이터 원본 형식 설정'HTTP 단점','HTTP 단점'설정kintone의 하위 영역 URL →'제작'선택
데이터 소스 만들기
해결자 작성
메뉴에서 모드를 선택하고Query 파서에서 부착기를 선택하십시오
데이터 원본 이전 단계에서 만든 데이터 원본 선택
맵 템플릿 만들기
GraphiQL 질의를 HTTP 형식으로 변환하는 매핑 템플릿을 작성합니다.
템플릿 매핑 요청
<App ID>
...kintoone 애플리케이션 ID<API Token>
...kintoone 어플리케이션의 API 토큰{
"version": "2018-05-29",
"method": "GET",
"resourcePath": "/k/v1/record.json",
"params":{
"query":{"app": "<App ID>", "id": $context.arguments.id },
"headers": {
"X-Cybozu-API-Token": "<API Token>"
}
}
}
응답 맵 템플릿
$ctx.result.body
listNotes 요청 맵 템플릿
<App ID>
...kintoone 애플리케이션 ID<API Token>
...kintoone 어플리케이션의 API 토큰{
"version": "2018-05-29",
"method": "GET",
"resourcePath": "/k/v1/records.json",
"params":{
"query":{"app": "<APP ID>"},
"headers": {
"X-Cybozu-API-Token": "<API Token>"
}
}
}
listNotes 응답 맵 템플릿
#if($ctx.error)
$util.error($ctx.error.message, $ctx.error.type)
#end
## If the response is not 200 then return an error. Else return the body **
#if($ctx.result.statusCode == 200)
$ctx.result.body
#else
$utils.appendError($ctx.result.body, "$ctx.result.statusCode")
#end
GraphiQL 질의 작성
GraphiQL 질의를 작성하고 테스트합니다.
singleNote
조회
query MyQuery {
singleNote(id: 1) {
record {
id {
value
}
name {
value
}
description {
value
}
}
}
}
실행 결과
{
"data": {
"singleNote": {
"record": {
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
}
}
}
listNotes
조회
query MyQuery {
singleNote(id: 1) {
record {
id {
value
}
name {
value
}
description {
value
}
}
}
listNotes {
records {
id {
value
}
name {
value
}
description {
value
}
}
}
}
실행 결과
{
"data": {
"singleNote": {
"record": {
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
},
"listNotes": {
"records": [
{
"id": {
"value": "29"
},
"name": {
"value": "2/1 やること"
},
"description": {
"value": "燃えるゴミ"
}
},
・・・略
{
"id": {
"value": "2"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "図書館で本を借りる"
}
},
{
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
]
}
}
}
디버그 로그
디버깅을 위해 메뉴 설정에서 로깅 - 로그 사용 을 선택합니다.
CloudWatch에서 로그를 내보냅니다.
참고 자료
Reference
이 문제에 관하여(AWS AppSync and kintone REST API GraphQL Query Sample), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sy250f/items/d52b5135062c58bf221c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
query MyQuery {
singleNote(id: 1) {
record {
id {
value
}
name {
value
}
description {
value
}
}
}
}
{
"data": {
"singleNote": {
"record": {
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
}
}
}
query MyQuery {
singleNote(id: 1) {
record {
id {
value
}
name {
value
}
description {
value
}
}
}
listNotes {
records {
id {
value
}
name {
value
}
description {
value
}
}
}
}
{
"data": {
"singleNote": {
"record": {
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
},
"listNotes": {
"records": [
{
"id": {
"value": "29"
},
"name": {
"value": "2/1 やること"
},
"description": {
"value": "燃えるゴミ"
}
},
・・・略
{
"id": {
"value": "2"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "図書館で本を借りる"
}
},
{
"id": {
"value": "1"
},
"name": {
"value": "1/10 やること"
},
"description": {
"value": "部屋の片付け"
}
}
]
}
}
}
디버깅을 위해 메뉴 설정에서 로깅 - 로그 사용 을 선택합니다.
CloudWatch에서 로그를 내보냅니다.
참고 자료
Reference
이 문제에 관하여(AWS AppSync and kintone REST API GraphQL Query Sample), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sy250f/items/d52b5135062c58bf221c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS AppSync and kintone REST API GraphQL Query Sample), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sy250f/items/d52b5135062c58bf221c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)