프론트엔드 개발자의 nest 도전기(2) Rest API - CRUD 맛보기

namYeJi9q·2024년 8월 19일
0

nestjs

목록 보기
2/2
post-thumbnail

사실 Nest를 배우려 했을때 제일 하고싶었던 것은 이거다.
CRUD 만들기.

드디어 왜 백이랑 소통이 어긋나는 이유가 무엇인지 알 수 있게 될 것이라는 기대로 시작해본다.


Rest API 폴더 만들기

터미널에 nest 또는 nest -h 라고 치고 옵션들을 보자.

아래서 3번째 'resource' 와 'CRUD'가 보인다.

Usege와 Commends를 보면서 CRUD를 만들어 사용해보자.
generate는 g로 줄여쓸 수 있고, resourece는 res로 줄일 수 있다.

터미널에 다음과 같이 입력해준다.

nest g res todos

이렇게 해주면 src에 todos 폴더가 생긴다.

여기서 todos.module.ts에 TodosModule이 생기고 여기서 TodosController와 TodosService가 불러와진다.

TodosService : DB에서 데이터를 가져와서 가공해서 넘겨주는 부분이 service
TodosController : end point가 todos로 되어있어서 서버루트/todos 로 된다.


API 구성 및 실행

서버가 잘 동작하는지 보려면 여러 프로그램 중 'Postman'이 많이 사용된다.
다운을 받아주고 들어가서 new collection을 simple todos로 변경해서 만들어주었다.


- Get -

이제 'Add a request'를 눌러 '127.0.0.1:3000/todos' 입력해주고 이름을 'fetch all todos'로 설정 후 Save를 눌러 저장해준다.
Send를 눌러 아래 'This action returns all todos' 라고 나오면 성공.


이는 controller에 Get방식을 따라서 Service의 findAll로 연결되 출력된 것이다.


같은 방식으로 'fetch a todo'를 만들어 보내보면 잘 불러오는 걸 알 수 있다.


- Post -

post는 CreateTodoDto를 사용한다.

CreateTodoDto가 비어있으니 간단하게 todo와 is_done으로 채운다.

이후 Postman에서 json 형식으로 Body에 넣어주면 된다.
저장하고 send 해보면 201. 잘 보내졌다.

여기서 TodosService의 return을 좀 더 수정해 설정한 todos가 보이게 해보자.

아주 잘 나오는 걸 확인할 수 있다.


- Patch -

수정을 위해 UpdateTodoDto를 들어가보면 PartialType(CreateTodoDto)라고 되어있다.
이건 createTodoDto에서 사용된 걸 그대로 사용한다는 뜻이다.
이걸 extends 즉 이어받아서 더 추가해 사용도 가능하다.
Postman에서 저장 후 send 해보면 업데이트 되는걸 알 수 있다.


- Delete -

delete는 id만 받으면 된다.


이렇게 간단하게 Rest API를 활용해 CRUD 구성해보았다.
API가 이렇게 만들어지는거구나. 알 수 있었다.
갈길이 멀다. 화이팅!

profile
개발로 먹고 살 예정

0개의 댓글