[typescript] 타입스크립트와 GraphQL 입력 데이터 유효성 검사

GraphQL은 API에 입력된 데이터의 유효성을 검사하기 위한 다양한 방법을 제공합니다. 타입스크립트를 사용하여 GraphQL 스키마를 작성하고 클라이언트 요청을 처리할 때 입력 데이터의 유효성을 검사하는 방법에 대해 알아보겠습니다.

1. GraphQL 입력 타입 정의

GraphQL에서 입력 객체 타입을 정의할 때, 타입스크립트를 사용하여 각 필드의 유효성을 검사할 수 있습니다. 예를 들어, 사용자를 생성하는 입력 객체 타입을 정의할 때 다음과 같이 타입스크립트를 활용할 수 있습니다.

type CreateUserInput = {
  name: string;
  email: string;
  age: number;
  // 추가 필드 및 유효성 검사 로직
}

2. 입력 데이터 유효성 검사

타입스크립트를 사용하여 입력 데이터의 유효성을 검사할 수 있습니다. 예를 들어, 이메일 주소의 유효성을 검사하는 함수를 작성할 수 있습니다.

function validateEmail(email: string): boolean {
  // 이메일 유효성 검사 로직
}

3. GraphQL 리졸버에서 유효성 검사

GraphQL의 리졸버 함수에서 입력 데이터를 처리할 때, 타입스크립트를 사용하여 유효성을 검사하고 오류를 반환할 수 있습니다.

const resolvers = {
  Mutation: {
    createUser: (_: any, { input }: { input: CreateUserInput }) => {
      if (!validateEmail(input.email)) {
        throw new Error('Invalid email');
      }
      // 추가 입력 데이터 유효성 검사 및 처리 로직
    }
  }
};

4. 요청 및 응답 타입 정의

타입스크립트를 사용하여 클라이언트가 요청한 데이터와 서버 응답 데이터의 타입을 정의할 수 있습니다.

type CreateUserRequest = {
  input: CreateUserInput;
}

type CreateUserResponse = {
  user: User;
  // 추가 필드 및 유효성 검사 로직
}

결론

타입스크립트를 사용하여 GraphQL 입력 데이터의 유효성을 검사하면 안정적인 API를 구축할 수 있습니다. GraphQL 스키마와 타입스크립트를 효과적으로 결합하여 안정성과 유연성을 동시에 확보할 수 있습니다.