kok202
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