Schema-first vs Code-first

오우·2023년 2월 7일
0

스키마 퍼스트는 graphql 에서 스키마파일에 스키마를 먼저정의한 후 그 스키마에맞게 코드를 작성하는 방법임

스키마를 작성하기 위해서는 그래프큐엘의 데이타모델을 나타내기위해만들어진sdl을 사용함

코드예시
// cat.graphql

type Query {
  cats: [Cat]
  cat(id: ID!): Cat
}

type Mutation {
  createCat(createCatInput: CreateCatInput): Cat
}

type Subscription {
  catCreated: Cat
}

type Owner {
  id: Int!
  name: String!
  age: Int
  cats: [Cat!]
}

type Cat {
  id: Int
  name: String
  age: Int
  owner: Owner
}

input CreateCatInput {
  name: String
  age: Int
}

위에서 보는 바와같이 조회할 자료들을 직접 다 작성해주어야한다.

코드퍼스트 방식은 현재 nestjs를 배우면서 현재 사용하고 있는 방식인데
데코레이터와 typescript클래스를 사용해 먼저 작성된 resolver를 기반으로 graphql스키마를 자동으로 생성시킴 말그대로 코드가 먼저 작성된 후에 스키마가 작성되기 때문에 코드퍼스트임

작성방식

GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
			autoSchemaFile: 'src/common/graphql/schema.gql',
})
profile
나는 개발자, 나는 개발자라구.

0개의 댓글