TS · GRAPHQL
NestJS Code-first GraphQL 구성 흐름
NestJS의 code-first 방식은 TypeScript 클래스와 데코레이터를 기준으로 GraphQL 스키마를 생성하고, 리졸버를 통해 요청을 서비스 로직으로 연결합니다.
GraphQL 구성 단계
code-first
GraphQLModule
Apollo 드라이버와 autoSchemaFile을 설정합니다.
ObjectType
응답 모델 클래스를 GraphQL 타입으로 표시합니다.
InputType
mutation 입력 구조를 타입으로 정의합니다.
Resolver
Query와 Mutation을 서비스 메서드에 연결합니다.
schema/end point
자동 생성된 스키마가 /graphql에서 실행됩니다.
module
→
model
→
input
→
resolver
→
/graphql
설계 포인트
schema
단일 원천
TypeScript 타입과 GraphQL 스키마의 중복을 줄입니다.
DTO 분리
입력 타입과 출력 타입은 필요에 따라 나눕니다.
검증
class-validator와 Pipe를 함께 쓰면 입력 검증이 선명해집니다.
권한
Resolver에도 Guard를 붙여 필드 접근을 제한할 수 있습니다.