티스토리 뷰
nest를 이용해 만들 API 서버를 정의해보자.
내가 만들 서버는 자동차회사의 API라고 생각해보겠다.
먼저는 유저에 대한 정보가 있고, 각각의 유저는 자동차를 최대 1대 가질 수 있다고 생각한다.
즉, User 테이블과 Car 테이블을 만들어 이 정보들에 대한 API를 제공 할 것이다.
User 모듈 만들기
그럼 먼저 User에 대한 모듈을 만들자.
Nest에는 Nest CLI라는 매우 편리한 기능이 있다.
컨트롤러를 만들고, 서비스를 만들고, 모듈을 만드는 등의 반복적인 일들을 보다 쉽고 편하게 만들 수 있게도와준다.
NEST CLI의 명령을 확인하고 싶으면 커맨드 라인에 nest
를 입력하면 된다.
이런 결과를 볼 수 있다.
먼저는 컨트롤러를 만들어 보겠다. nest generate controller
를 입력해보자.
그럼 컨트롤러의 이름을 입력하라는 창이 나오게 된다. user
를 입력하자.
이렇게 nest cli에서 자동으로 파일을 만들고, 업데이트 한것을 확인할 수 있다.
user.controller.ts
파일에 들어가면
import { Controller } from '@nestjs/common';
@Controller('user')
export class UserController {}
이런 코드가 자동적으로 입력되어 있다.
@Controller('user')
이 코드가 의미하는 것은 /user
이후에 들어오는 요청을 이 컨틀롤러에서 처리하겠다는 의미이다.
Get 요청
먼저 Get요청을 처리해보자. @nestjs/common
로 부터 Get
을 import 하자.
import { Controller, Get } from '@nestjs/common';
@Controller('user')
export class UserController {
@Get()
getAllUser() {
return 'get All User';
}
}
이렇게 코드를 작성했다.
간단하게 설명하자면 /user
로 들어오는 요청에 대해 getAllUser함수를 호출하고 이는 get All User
라는 스트링을 리턴할 것이다.
제대로 리턴이 돌아오는지 httpie를 통해 확인해보았다.
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 12
Content-Type: text/html; charset=utf-8
Date: Thu, 29 Jul 2021 11:23:03 GMT
ETag: W/"c-m1vgOrhWhiBRNsGVJZjsbj0PzJE"
Keep-Alive: timeout=5
X-Powered-By: Express
get All User
정상적으로 응답이 돌아온 것을 확인할 수 있다.
이런식으로 라우팅을 수행하면 된다.
이번에는 특정한 id를 가진 유저에 대한 get요청을 처리해보자.
@Get(':id')
getUserById(@Param('id') id: string) {
return `get User with the id ${id}`;
}
이렇게 작성하면 된다.
이것이 의미하는 바는 /user/:id
로 들어오는 요청에 대하여 해당 함수를 실행한다.
그리고 파라미터는 @Param()
이라는 데코레이터를 통해 받을 수 있다.
http localhost:3000/user/2
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 22
Content-Type: text/html; charset=utf-8
Date: Thu, 29 Jul 2021 11:24:51 GMT
ETag: W/"16-sdUUPUvol3eeSCkZYS/AzJ0B4+Q"
Keep-Alive: timeout=5
X-Powered-By: Express
get User with the id 2
정상적으로 응답이 돌아오는 것을 볼 수 있다.
참고로 return 값은 나중에 데이터베이스와 연결하여 수정할 것이다.
다음엔 Post요청을 처리하기 위하여 typeORM을 설치하고 entity를 작성 해 보겠다.
'Node.js' 카테고리의 다른 글
Nest.js + typeORM 으로 REST API 서버 만들기 (4) (0) | 2021.07.29 |
---|---|
Nest.js + typeORM 으로 REST API 서버 만들기 (3) (0) | 2021.07.29 |
Nest.js + typeORM 으로 REST API 서버 만들기(1) (0) | 2021.07.29 |
Express 스태틱파일 서빙 (0) | 2021.07.17 |
Node.js 스트림(stream) (0) | 2021.07.15 |
- Total
- Today
- Yesterday
- Computer Architecture
- typeORM
- boj
- 구현
- 세그먼트 트리
- 재귀
- 그리디
- java
- BFS
- 벨만포드
- 중앙대학교
- dfs
- nest.js
- 시뮬레이션
- 알고리즘
- node.js
- 컴퓨터 통신
- 예외처리
- 스레드
- 투포인터
- ReactNative
- 컴퓨터 구조
- 자바스크립트
- 백트래킹
- 백준
- 동적계획법
- 그래프
- nestjs
- nodeJS
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |