schema.graphql에 Query, Mutation을 구현하고 이 파일을 index.js typeDefs에 연결을 한다. 그 다음 db.js 에서 원하는 값을 만들고 원하는 동작을 resolver.js에 정의한 후 함수로 생성한다. resolver.js에 구현할때 함수명은 schema.graphql에서 정의한 명으로 사용하고 각각의 함수들을 db.js에서 구현한 함수들을 통하여 구현한다.
정보를 조회할경우 Query를 정보의 변경시 Mutation을 사용한다.
schema.graphql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# url 이라고 생각하면 편하다. type Movie { id: Int! name: String! score: Int! }
type Query { # 왼쪽은 이름, 오른쪽은 return할 값. movies: [Movie]! movie(id: Int!): Movie }
# change state type Mutation { addMovie(name: String!, score: Int!): Movie! deleteMovie(id: Int!): Boolean! }
const server = new GraphQLServer({ typeDefs: "qraphql/schema.graphql", resolvers // resolvers: resolvers 로도 표현이 가능하지만 // 최신 자바스크립트는 resolvers 만 써도 같은 의미이다. })
server.start(() =>console.log("Graphql Server Running"))