TS · GRAPHQL

NestJS Code-first GraphQL 구성 흐름

NestJS의 code-first 방식은 TypeScript 클래스와 데코레이터를 기준으로 GraphQL 스키마를 생성하고, 리졸버를 통해 요청을 서비스 로직으로 연결합니다.

GraphQL 구성 단계

code-first
GraphQLModuleApollo 드라이버와 autoSchemaFile을 설정합니다.
ObjectType응답 모델 클래스를 GraphQL 타입으로 표시합니다.
InputTypemutation 입력 구조를 타입으로 정의합니다.
ResolverQuery와 Mutation을 서비스 메서드에 연결합니다.
schema/end point자동 생성된 스키마가 /graphql에서 실행됩니다.
modulemodelinputresolver/graphql

설계 포인트

schema
단일 원천TypeScript 타입과 GraphQL 스키마의 중복을 줄입니다.
DTO 분리입력 타입과 출력 타입은 필요에 따라 나눕니다.
검증class-validator와 Pipe를 함께 쓰면 입력 검증이 선명해집니다.
권한Resolver에도 Guard를 붙여 필드 접근을 제한할 수 있습니다.