[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 리졸버를 작성하고 실행할 수 있습니다.