본문 바로가기
개발/GraphQL , Apollo

GraphQL 복습 끄적인거

by 안뇽! 2022. 1. 21.
반응형

 

https://youtu.be/VdObBj3SiOc

니콜라스 강의를 참고했다.

 

아직 배우는 단계에서 복습을 위해 작성했기때문에 틀린내용이 있을 수 있습니다.

지적은 감사히 받겠습니다!


우선 화면부터 보면

query에 person의 하위 속성인 name을 보냈을때, "Nicolas"가 입력된다.

Query

이 파일은 Query 역할을 한다.

Query는 DB로 부터 정보를 얻어오는 역할을 한다.

//schema.graphql

type Nicolas {
  name: String!
  age: Int!
  gender: String!
}

type Query {
  person: Nicolas!
}

어떤 사용자가 Query에 person을 보내면 사용자에게 Nicolas 타입을 보낸다. 라는 내용이다.

 

Resolvers

이 파일은 resolvers의 역할을 한다. query를 resolve(해결)한다.

const nicolas = {
  name: "Nicolas",
  age: 18,
  gender: "female",
};
const resolvers = {
  Query: {
    person: () => nicolas,
  },
};

export default resolvers;

 

이 두 파일이 index.js에서 아래와 같이 모여 작동한다.

import { GraphQLServer } from "graphql-yoga";
import resolvers from "./graphql/resolvers";

// 위에 언급한 schema.graphql에서 사용자가 어떤걸 할지에 대해 정의한다.
// 그중 하나는 DB로 부터 정보를 얻는것. 이를 query라고 한다. 정보를 받을 때
// 정보를 DB로 보낸다. 이를 Mutation이라 한다. 정보를 바꾸는 작업.
// 우리가 GraphQL 서버에 할 건 어떤 Mutations 그리고 어떤 Query 들을 우리가 가졌는지 알려주는 것

const server = new GraphQLServer({

  //typeDefs : 모든 타입들에 대한 정의
  typeDefs: "./graphql/schema.graphql",

  //query를 resolve(해결)한다.
  resolvers,
});

server.start(() => console.log("GraphQL Server Running"));

 

localhost:4000에서 실험한 결과

 

쓰는 나도 내가 뭘 치는지 모르겠군

반응형