[typescript] 타입스크립트와 GraphQL에서 API 로깅하기

웹 개발에서 API 로깅은 중요한 부분입니다. API 호출을 로깅함으로써 요청 및 응답 데이터를 기록하고 모니터링할 수 있습니다. 이제 타입스크립트와 GraphQL을 사용하여 API 로깅을 구현하는 방법에 대해 살펴보겠습니다.

1. GraphQL 서버 설정

먼저, 타입스크립트와 GraphQL을 사용하여 서버를 설정합니다. 다음과 같이 expressapollo-server-express 패키지를 설치합니다.

npm install express apollo-server-express graphql

그런 다음, GraphQL 스키마와 리졸버를 정의하고 apollo-server-express를 사용하여 서버를 생성합니다. 이때, 미들웨어를 사용하여 API 호출을 가로채어 로깅하는 작업을 수행할 것입니다.

2. 미들웨어 구현

미들웨어를 사용하여 API 호출을 가로채고 로깅하는 부분은 다음과 같이 구현할 수 있습니다:

import { Request, Response, NextFunction } from 'express';

function loggerMiddleware(req: Request, res: Response, next: NextFunction) {
  console.log(`API Request: ${req.method} ${req.url}`);
  next();
}

위의 코드에서는 expressRequestResponse를 이용하여 미들웨어를 작성하였습니다.

3. 서버에 미들웨어 적용

마지막으로, 서버에 구현한 미들웨어를 적용합니다. 아래 코드는 서버를 생성하고 미들웨어를 적용하는 예시입니다.

import express from 'express';
import { ApolloServer } from 'apollo-server-express';
import { typeDefs, resolvers } from './graphql-schema';

const app = express();

app.use(loggerMiddleware); // 미들웨어 적용

const server = new ApolloServer({ typeDefs, resolvers });

server.applyMiddleware({ app });

app.listen({ port: 4000 }, () =>
  console.log(`Server ready at http://localhost:4000${server.graphqlPath}`)
);

결론

이제 타입스크립트와 GraphQL을 사용하여 API 로깅을 구현하는 방법을 설명하였습니다. API 로깅은 보안 및 성능 모니터링을 위해 중요하므로, 앞으로의 웹 개발 프로젝트에서 이를 고려하여 구현하는 것이 좋습니다.

Reference