ex) 스키마 내에서 간단한 타입의 정의
// 1. Person type Person { name: String! age: Int! } // 2. Post type Post { title: String! }
관계를 추가하는 경우
=> Person은 다수의 post를 가지고, Post는 각각 Person 하나의 author를 가진다.
// 1. Person type Person { name: String! age: Int! posts: [Post!]! } // 2. Post type Post { title: String! author: Person! }
GraphQL의 장점으로, 필요한 부분만 특정지어 불러올 수 있다.
ex) 모든 Person 중 마지막 2명의 name, age 불러오기
요청
{ allPersons(last: 2) { name age } }
응답
{ "allPersons": [ {"name": "John", "Age": 20} {"name": "Alice", "Age": 20} ] }
ex) 모든 Person의 이름과 각각이 작성한 post의 이름 불러오기
요청
{ allPersons { name posts { title } } }
응답
{ "allPersons": [ { "name": "John", "posts": [ {"title": "Nice GraphQL"}, {"title": "Apollo is a Client for GraphQL"} ] }, { "name": "Alice", "posts": [ {"title": "How to start GraphQL"}, ] }, { "name": "Sarah", "posts": [] }, ] }
ex) Create
1) 요청
mutation { createPerson(name: "Sangwoo", age: 29) { name age } }
2) 응답
"createPerson": { "name": "Sangwoo", "age": 29, }
각 스키마의 형태에 대한 예시이다.
타입의 지정과 스키마 정의를 다음과 같은 예시로 알 수 있다.
스키마의 확장
다음 예시처럼 하면 된다.
정의해놓은 각 스키마에 추가할 method(?)와 해당하는 타입을 작성한다.
GraphQL과 YTS API 사용하기 (2) (0) | 2019.10.01 |
---|---|
GraphQL과 YTS API 사용하기 (1) (0) | 2019.09.30 |
GraphQL API 만들어보기 (3) (0) | 2019.09.30 |
GraphQL API 만들어보기 (2) (0) | 2019.09.30 |
GraphQL Tutorial (0) | 2019.09.27 |
댓글 영역