728x90
반응형
REST API
2.0 Movie Controller
Movie Controller 만들어보자
우선 Terminal 창에 아래 코드를 입력하면
nest
위와 같은 목록표가 나온다.
우리는 Controller 를 만들것이니
nest generate co
혹은
nest g co
입력하자
Controller 의 이름을 묻는다.
movies controller 만들 것이니 movies 를 입력하자
movies controller 가 생성되었다.
어? 잘 보니까 @Module에 controller 보면 MoviesController 가 이미 import 되었다.
@Controller('movies')
export class MoviesController {
@Get()
getAll() {
return 'This will return all movies';
}
}
@Get()
getAll() {
return 'This will return all movies';
}
GET 을 넣어보자
실행하면
이렇게 출력된다.
@Get('/:id')
getOne() {
return 'This will return one movie and num 1';
}
위 코드를 추가하면?
이렇게 원하는 출력 결과를 얻을 수 있다.
@Post()
create() {
return 'This will create a movie';
}
@Delete("")
remove() {
return 'This will delete a movie';
}
Post 와 Delete 도 추가해주자
만약 작동이 안된다면
import { Controller, Delete, Get, Param, Patch, Post } from '@nestjs/common';
상단에 nest.js/common 으로 부터 import 되었는지 확인 해 주자
참고로 자동 import 해주는 extension 알려주자면
해당 extension 활용하자
2.1 More Routes
@Post
@Post()
create() {
return 'This will create a movie';
}
해당 Post 에 Body 를 Request 해서 가져오고 싶다?
—> @Body 를 사용하자
@Post()
create(@Body() movieData) {
console.log(movieData);
return movieData;
}
JSON 형태로 쏴보면
전달 되어진다.
@Patch 에서도 동일하다.
@Patch('/:id')
patch(@Param('id') movieId: string, @Body() updateData) {
return {
updateMove: movieId,
...updateData,
};
}
@Param 과 @Body 로 Request
이렇게 코드를 기입하면
해당 그림처럼 수정되어진다.
그럼 여기서 알 수 있는 사실!
→ 무언가가 필요하다면 직접 요청해야 한다.
express 와 동일하게 parameter 보다 아래에 있으면 파라미터만 인식을 한다,
즉, 순서도 중요하다.
@Get('/search')
search() {
return `We are searching for a movie with a title: `;
}
@Get('/:id')
getOne(@Param('id') movieId: string) {
return `This will return one movie with the id: ${movieId}`;
}
@Query 도 작동한다.
@Get('/search')
search(@Query('year') searchingYear: string) {
return `We are searching for a movie with a title: ${searchingYear}`;
}
로 기입하면, 된다.
한번 더 명심하자면 무언갈 원한다면, 요청해라
@Param, @Body, @Query
728x90
반응형
'📁 𝐟𝐫𝐚𝐦𝐞𝐖𝐨𝐫𝐤 > Nest.js' 카테고리의 다른 글
[Nest.js] Nest.js를 사용할 때 알아야 할 기본적인 몇 가지 (0) | 2023.03.30 |
---|---|
[Nest.js] Nest.js 에서 Rest한 API create 하는 방법 (2) (0) | 2023.03.30 |
[Nest.js] Nest.js의 아키텍쳐 (0) | 2023.03.30 |
[Nest.js] Nest.js 기본 세팅 (0) | 2023.03.30 |