리졸버 계약

GraphQL 스키마와 리졸버

Query, Mutation, Subscription을 같은 Resolver 안에서 다루더라도 입력 타입, 반환 타입, 이벤트 흐름은 분명히 나누어야 합니다.

타입 설계

ObjectType / InputType

조회 결과 타입과 변경 요청 입력 타입을 분리해 클라이언트가 보낼 수 있는 필드를 제한합니다.

조회

Query Resolver

id나 필터를 받아 서비스 조회 메서드를 호출하고 GraphQL 타입에 맞는 결과를 반환합니다.

변경

Mutation Resolver

Create 또는 Update input을 받아 비즈니스 규칙을 실행하고 변경된 객체나 상태를 반환합니다.

실시간

Subscription Resolver

이벤트가 발생했을 때 구독 중인 클라이언트에게 payload를 밀어주는 흐름을 정의합니다.