GraphQL 강의 (6~7 : Schema Array, Find)
2019. 8. 10. 03:14ㆍ[공부] 영상/GraphQL
index.js
import {GraphQLServer} from "graphql-yoga"
import resolvers from "./qraphql/resolvers"
const server = new GraphQLServer({
typeDefs: "graphql/schema.graphql",
resolvers
})
server.start(()=>console.log("GraphQL server running"));
graphql/schema.graphql
type Person{
id: Int!
name: String!
age: Int!
gender: String!
}
type Query{
people: [Person]!
person(id: Int!): Person
}
느낌표의 의미 : nullable=false
person(id: Int!) 의 의미 : id 는 반드시 Int 가 있어야한다. 여야한다.
person(id: Int!): Person 의 의미 : 이 쿼리에 대한 결과는 null 일 수 있다.
person(id: Int!): Person! 의 의미 : 이 쿼리에 대한 결과는 반드시 Person 이 있어야한다.
graphql/resolvers.js
import {peopleArray, getById} from "./db"
const resolvers = {
Query: {
people:() => peopleArray
person:(_, args) => getById(args.id)
}
}
export default resolvers;
graphql/db.js
export const peopleArray = [
{
id: 0,
name: "kok202",
age: 99,
gender: "male"
},
{
id: 1,
name: "qwerty",
age: 99,
gender: "male"
},
{
id: 2,
name: "asdfg",
age: 99,
gender: "male"
},
{
id: 3,
name: "kok",
age: 99,
gender: "male"
},
{
id: 4,
name: "123456",
age: 99,
gender: "male"
}
];
export const getById = id => {
const filteredPeople = peopleArray.filter(person => id === person.id);
return filteredPeople
}
Query 예시 (모든 필드가 Optional 이다.)
query{
people{
name
}
}
query{
person(id:1){
name
}
}
'[공부] 영상 > GraphQL' 카테고리의 다른 글
GraphQL 강의 (10~11 : Wrapping REST API) (0) | 2019.08.10 |
---|---|
GraphQL 강의 (8~9 : Mutation) (0) | 2019.08.10 |
GraphQL 강의 (4 : Schema String) (0) | 2019.08.10 |
GraphQL 강의 (1~3 : 세팅) (0) | 2019.08.10 |
GraphQL (0) | 2019.08.08 |