본문 바로가기

1st life_Programmer/GraphQL6

6. Argument를 활용한 Query GraphQL 서버가 Query나 Mutation의 정의를 발견하면 Resolver를 찾고 해당 함수를 실행합니다. 이 때 argument를 주는 데 이를 활용해봅시다! 처음 파라미터는 현재의 객체를 보내는 객체인데 지금 사용하지 않을 것이기 때문에 넘어가도록 하겠습니다ㅎ 두번째 파라미터가 argument이고 한번 관찰해보겠습니다. import {people, getById} from './db'; const resolvers = { Query: { people:() => people, person:(_, argument) => console.log(argument) // { id : 1 } } }; export default resolvers; 서버에는 이러한 요청을 합시다. 이렇게 argument를 .. 2019. 8. 1.
5. Schema 확장시키기(2) 잘따라오고 계신가요 ㅎㅎ 그럼 이제 조오금 더 복잡한 쿼리를 만들어 보도록 하겠습니다 :) type Person { id: Int! name: String! age: Int! gender: String! } type Query{ people: [Person]! person(id: Int!): Person } 쿼리에서 people을 요청하면 Person의 배열을 받게 될껍니다. 그리고 특정한 id를 주면서 person을 요청하면 Person을 주게 됩니다. 이때는 !를 붙이지 않았는데 해당 id를 못찾을 수도 있기 때문에 필수요소에서 제거해주었습니다! Person의 배열을 받아야 하므로 저장될 데이터가 많아지게 되겠죠. 데이터를 효율적으로 관리하기 위해 db.js 의 파일에 데이터들을 분리시켜 줍니다. e.. 2019. 7. 31.
4. Schema 확장시키기(1) 저번 시간에는 서버의 작동을 보기 위해 간단한 Query와 Resolvers를 정의해서 테스트해 보았습니다. 이제부터는 조금 더 응용된 스키마들을 작성해봅시다~ Query요청을 name이 아닌 person으로 바꿔볼까요! person을 요청했을때 알려주어야 하는 student 데이터 타입이 정의가 안되어 있기 때문에 student라는 데이터 타입도 정의해줍니다. type Student { name: String! age: Int! gender: String! } type Query{ person: Student! } resolvers.js 에서 person요청을 하면 Sso를 리턴해주도록 만들어 줍니다. 이때 Sso가 무엇인지 모를테니 Sso에 대한 정보도 위에 정의해주도록 합시다 ㅎㅎ const Sso.. 2019. 7. 31.
3. Query와 Resolver를 이용해 간단한 서버 실행시키기 스키마를 마저 정의해주고 서버를 실행시켜줍시다. 스키마란? 주고 받을 정보에 대한 설명을 적은 것입니다. 사전지식 우리가 GraphQL로 할 수 있는 것은 세 가지가 있습니다. Query : 질문 어떤 데이터를 받을지 요청 Mutation : 변형 서버나 디비에서 정보를 바꾸는 작업 Resolver : 해결 쿼리가 질문한 것을 어떻게 해결할 것인지에 대한 해결방법 schema.graphql에 첫 번째 쿼리를 선언해보겠습니다. type Query{ name : String! } 디비에 name을 물어보면 String으로 대답을 받겠다는 설명입니다. (!는 필수요소라는 것을 뜻합니다.) 이렇게 쿼리로 데이터베이스에 어떤 정보를 원하는지 문제를 내주었습니다. 그렇다면 해결하는 방법또한 알고 있어야 겠죠?? 이.. 2019. 7. 31.