[typescript] 타입스크립트와 GraphQL에서 API 로깅하기
웹 개발에서 API 로깅은 중요한 부분입니다. API 호출을 로깅함으로써 요청 및 응답 데이터를 기록하고 모니터링할 수 있습니다. 이제 타입스크립트와 GraphQL을 사용하여 API 로깅을 구현하는 방법에 대해 살펴보겠습니다.
1. GraphQL 서버 설정
먼저, 타입스크립트와 GraphQL을 사용하여 서버를 설정합니다. 다음과 같이 express
와 apollo-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();
}
위의 코드에서는 express
의 Request
와 Response
를 이용하여 미들웨어를 작성하였습니다.
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 로깅은 보안 및 성능 모니터링을 위해 중요하므로, 앞으로의 웹 개발 프로젝트에서 이를 고려하여 구현하는 것이 좋습니다.