[typescript] 타입스크립트에서 REST API 호출 시 라우터 구현 방법

이번 포스트에서는 타입스크립트 환경에서 REST API 호출을 위한 라우터 구현 방법에 대해 알아보겠습니다.

Express 라우터 설정

Express는 Node.js의 웹 애플리케이션을 위한 빠르고 간편한 웹 프레임워크입니다. 먼저 Express 애플리케이션에 라우터를 설정하겠습니다.

import * as express from 'express';
const router = express.Router();

router.get('/', (req, res) => {
  // GET 요청에 대한 처리 로직 작성
});

router.post('/', (req, res) => {
  // POST 요청에 대한 처리 로직 작성
});

// 추가적인 라우트들을 여기에 추가

export default router;

위 코드에서 express.Router()를 사용하여 라우터를 생성하고, router.get, router.post를 통해 각각의 HTTP 메소드에 대한 처리 로직을 작성합니다.

타입 정의

타입스크립트를 사용하면 API 요청과 응답에 대한 타입을 명시적으로 정의할 수 있습니다.

interface User {
  id: number;
  name: string;
}

router.get('/users', async (req, res) => {
  const users: User[] = await fetchUsers();
  res.json(users);
});

위 예제에서는 User 인터페이스를 정의하여 사용자 객체의 타입을 명시하고, GET 요청에 대한 응답으로 해당 타입의 배열을 반환하도록 설정했습니다.

Axios를 이용한 API 호출

REST API를 호출할 때는 Axios와 같은 HTTP 클라이언트 라이브러리를 사용할 수 있습니다.

import axios, { AxiosResponse } from 'axios';

const response: AxiosResponse<User> = await axios.get<User>('/api/users');

Axios를 사용하여 REST API를 호출하고, 응답 데이터의 타입을 지정하여 받아올 수 있습니다.

결론

타입스크립트를 사용하여 Express 애플리케이션에서 REST API를 호출하고 관리하는 방법에 대해 알아보았습니다. 이를 통해 타입 안정성과 코드 유지보수성을 높일 수 있습니다. 개발할 때 이러한 사항을 고려하여 더욱 견고하고 안정적인 코드를 작성할 수 있도록 노력해야 합니다.

참고: Express 공식 문서, Axios 공식 문서