[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 스키마와 타입스크립트를 효과적으로 결합하여 안정성과 유연성을 동시에 확보할 수 있습니다.