이 주제에 대해서는 길게 내용이 나오기는 힘들 것 같다.
api를 만들다보면 명세를 만들어놔야한다.
이 api에서는 필요한 것이 aa bb cc 가 있어야한다. 라는 식으로 존재를 해야 보고 함께 개발을 할 수 있기 때문이다.
그래서 Rest Api에서는 SWAGGER를 사용하여 명세를 만들어주는데
자동화가 있긴 하지만, 스웨거를 직접 짜주는 것을 Schema-first 라고 이야기를 한다.
(정말 최악이였다... 띄어쓰기로 망가지는게 너무 작성하기 힘들었다)
이것은 반대로 구성되어있다.
코드를 먼저 작성해주면 그것에 맞게 명세를 만들어주는 방식으로 진행이 된다.
적용을 하기 위해서는 이런식으로 모듈 최상단에 넣어주면 해결된다.
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver,
autoSchemaFile: 'src/commons/graphql/schema.gql', // <- 요건 명세가 저장되는 위치
context: ({ req, res }) => ({ req, res }), // <- 이건 restApi를 쓰기 위해서 추가해놓음
})