Research/Nest.js
07. Nest.js_RestAPI_응답 데이터 유형과 상태코드
RIEM
2023. 2. 7. 16:05
728x90
응답 데이터 자동 변환
nest.js에서 response로 데이터를 리턴해줄 때, 객체와 배열은 JSON으로 자동 변환해줍니다. 원시타입은 그대로 전달해줍니다.
데이터 변환 유형
- Number -> Number
- String -> String
- Boolean -> Boolean
- Object -> JSON
- Array -> JSON
// src/events.controllers.ts
import {
Body,
Controller,
Delete,
Get,
Param,
Patch,
Post,
} from '@nestjs/common';
@Controller('/events')
export class EventsController {
// 5개 정도 가볍게 유지하는 것이 좋다
@Get()
findAll() {
// 배열을 반환하여도 클라이언트는 JSON 데이터로 받는다
return [
{ id: 1, product: 'Jacket' },
{ id: 2, product: 'Pants '}
]
}
// Param 데코레이터 사용하여 파라미터 가져오기
@Get(':id')
findOne(@Param('id') id) {
return id;
}
// Body 데코레이터로 body 값 가져오기
@Post()
create(@Body() input) {
return input;
}
@Patch(':id')
update(@Param('id') identity, @Body() input) { }
@Delete(':id')
remove(@Param('id') id) { }
}
상태코드 자동 설정
nest.js은 응답 데이터만 자동으로 변환해주는 것이 아닙니다. 상태코드도 자동으로 세팅해줍니다. 우리는 Post 메소드에 상태코드를 지정해주지 않았는데 알아서 201 Created로 세팅해주었습니다.
주요 HTTP의 상태코드는 아래와 같습니다.
- Success(200-299)
200 OK
201 Created
204 No Content
- Redirects(300-399)
301 Moved Permanently
302 Found
304 Not Modified
- Client Error(400-499)
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
405 Method Not Allowed
- Server Error(500-599)
500 Internal Server Error
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
상태코드 직접 설정
// src/events.controllers.ts
import { Body, Controller, Delete, Get, Param, Patch, Post, HttpCode } from '@nestjs/common';
...
@Delete(':id')
@HttpCode(204)
remove(@Param('id') id) { }
...
만약 상태코드를 직접 설정하고 싶다면 어떻게 해야할까요? HttpCode(코드)
데코레이터를 사용하면 됩니다. 참 쉽죠?
728x90