[typescript] 타입스크립트를 사용하여 GraphQL 리졸버 작성하기

GraphQL은 API를 위한 쿼리 언어로서 타입스크립트와 함께 사용할 때 타입 안정성을 더욱 향상시킬 수 있습니다. 아래에서는 타입스크립트를 사용하여 GraphQL 리졸버를 작성하는 방법에 대해 설명하겠습니다.

1. 타입스크립트 프로젝트 설정

먼저, 타입스크립트로 노드 프로젝트를 설정합니다. 프로젝트 루트 디렉토리에서 다음 명령어를 실행하여 tsconfig.json 파일을 생성합니다.

npx tsc --init

그런 다음 필요한 패키지를 설치합니다.

npm install graphql apollo-server type-graphql

2. GraphQL 스키마 및 리졸버 작성

다음으로, GraphQL 스키마와 리졸버를 작성합니다. 예를 들어, User와 관련된 쿼리와 뮤테이션을 다루는 리졸버를 작성해보겠습니다.

user.ts 파일

import { ObjectType, Field, ID } from "type-graphql";

@ObjectType()
class User {
  @Field(type => ID)
  id: string;

  @Field()
  name: string;

  @Field()
  email: string;
}

export default User;

userResolver.ts 파일

import { Resolver, Query } from "type-graphql";
import User from "./user";

@Resolver()
class UserResolver {
  @Query(returns => User)
  async user(id: string): Promise<User> {
    // 유저 데이터를 가져오는 비즈니스 로직 작성
  }
}

export default UserResolver;

3. 서버 설정

마지막으로, Apollo 서버를 설정하고 리졸버를 적용합니다.

index.ts 파일

import { ApolloServer } from "apollo-server";
import { buildSchema } from "type-graphql";
import UserResolver from "./userResolver";

async function startApolloServer() {
  const schema = await buildSchema({
    resolvers: [UserResolver],
  });

  const server = new ApolloServer({ schema });
  await server.listen(4000);
  console.log(`🚀 Server ready at http://localhost:4000/graphql`);
}

startApolloServer();

이제 위의 단계를 따라하면 타입스크립트를 사용하여 GraphQL 리졸버를 작성하고 실행할 수 있습니다.

참고 자료