NestJS 컨트롤러(Controller) 개념 및 정의하기
BE/NestJS2023. 11. 17. 23:30Table of Contents
반응형
NestJS의 컨트롤러(Controller)
NestJS에서 controller는 다른 서버 프레임워크와 동일하게, 클라이언트로부터 들어오는 요청(Request)을 라우팅하고 응답(Response)하는 역할을 합니다.
컨트롤러를 정의하기 위해서는 @Controller
라는 데코레이터를 사용합니다. 그리고 HTTP Method를 표현하기 위해 @Get
, @Post
, @Put
, @Delete
와 같은 데코레이터를 사용합니다. 해당 데코레이터를 이용하여 Restful API를 쉽게 개발할 수 있습니다.
Controller 생성하기
module을 만들때와 같이 nestcli를 이용해서 controller를 생성할 수 있습니다. nest g controller <컨트롤러명> --no-spec
--no-spec: 테스트 코드 생성하지 않음
아래 명령어를 입력해봅시다.
nest g controller boards --no-spec
자동으로 만들어진 controller에 API를 2개 만들어보겠습니다.
- 게시글 전체를 조회 API: /boards/
- 특정 게시글 1개를 조회 API: /boards/{id}
import { Controller, Get, Param } from '@nestjs/common';
const mock = [
{ id: 1, title: 'title1' },
{ id: 2, title: 'title2' },
];
@Controller('boards')
export class BoardsController {
@Get('/')
findAll(): { id: number; title: string }[] {
return mock;
}
@Get('/:id')
findById(@Param('id') id: string): { id: number; title: string } {
return mock.find((board) => board.id === Number(id));
}
}
@Controller
인자로 'boards'를 넣었기 때문에 API의 url의 prefix로 boards가 붙게 됩니다. 따라서 만든 api를 curl을 이용하여 각각 호출해보면 아래와 같이 응답이 오는 것을 확인 할 수 있습니다.
Reference
반응형
'BE > NestJS' 카테고리의 다른 글
NestJS + postgres + typeorm 연동하기 (서버 DB 연결) (0) | 2023.11.21 |
---|---|
NestJS Pipe를 이용하여 데이터 변환 및 검증 (1) | 2023.11.20 |
NestJS에서 서비스(Service) 개념 및 서비스 생성하기 (0) | 2023.11.19 |
NestJS의 모듈(module) 개념 및 module 정의하기 (0) | 2023.11.17 |
NestJS로 프로젝트 생성 및 서버 개발하기 (0) | 2023.11.17 |
@bluemiv :: BLUEMIV
IT 기술에 대한 글을 주로 작성하고, 일상 내용, 맛집/숙박/제품 리뷰 등 여러가지 주제를작성하는 블로그입니다. 티스토리 커스텀 스킨도 개발하고 있으니 관심있으신분은 Berry Skin을 검색바랍니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!