Wii Pointer #1 Tilt Normal
본문 바로가기
📁 𝐟𝐫𝐚𝐦𝐞𝐖𝐨𝐫𝐤/Nest.js

[Nest.js] Nest.js 에서 Rest한 API create 하는 방법 (1)

by 개발자_후니 2023. 3. 30.
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 을 넣어보자

실행하면

localhost:3000/movies

이렇게 출력된다.

@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
반응형