[typescript] 타입스크립트와 GraphQL에서 API 프로토타이핑하기

본 포스트에서는 타입스크립트와 GraphQL을 이용하여 API 프로토타입을 어떻게 구현하는지에 대해 살펴볼 것입니다.

개발 환경 준비하기

우선 타입스크립트와 GraphQL을 사용하기 위한 개발 환경을 구축해야 합니다. 아래 명령어로 타입스크립트 프로젝트를 초기화합니다.

npm init -y
npm install typescript ts-node graphql express express-graphql

GraphQL 스키마 정의하기

GraphQL 스키마를 정의합니다. 이를 통해 API의 타입 및 쿼리를 정의할 수 있습니다. 아래는 간단한 예시입니다.

// schema.ts
import { buildSchema } from 'graphql';

const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

export default schema;

Resolver 구현하기

Resolver는 GraphQL 쿼리가 호출될 때 해당 쿼리에 대한 실제 로직을 구현하는 부분입니다. 아래는 간단한 예시입니다.

// resolver.ts
const root = {
  hello: () => {
    return 'Hello, world!';
  },
};

export default root;

Express 서버 구축하기

타입스크립트와 Express를 사용하여 서버를 만듭니다.

// server.ts
import express from 'express';
import graphqlHTTP from 'express-graphql';
import schema from './schema';
import resolver from './resolver';

const app = express();

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: resolver,
  graphiql: true,
}));

app.listen(4000, () => {
  console.log('Running a GraphQL API server at http://localhost:4000/graphql');
});

실행하기

마지막으로 아래 명령어를 통해 서버를 실행합니다.

ts-node server.ts

이제 http://localhost:4000/graphql에 접속하여 GraphQL API를 테스트할 수 있습니다.

위와 같이 타입스크립트와 GraphQL을 활용하여 API 프로토타이핑을 구현할 수 있습니다. 간단한 예시를 통해 기본 구현 방법을 살펴보았는데, 더 복잡한 API도 마찬가지로 타입스크립트와 GraphQL을 사용하여 프로토타이핑할 수 있습니다.