지금까지 만들어진 코드 중 다음과 같은 부분이 있었다.
- 사용자 목록 조회 : GET - /user
- 사용자 단건 조회 : GET - /user/:id
- 사용자 추가 : POST - /user
- 사용자 수정 : PUT - /user/:id
- 사용자 삭제 : DELETE - /user/:id
app.js 에 라우팅을 위한 router를 등록하고 각 router에서 페이지를 리턴하는 등의 서비스를 제공하고 있는 모습이다.
이제 api 폴더에 구현할 서비스에 대해 라우팅을 설정해보자.
우선 어떤 모델(resource)에 대한 Restful 서비스 요청은 url의 시작을 /api 로 하는 것으로 정의하자.
그러면 게시글에 대한 조회 서비스는 다음과 같을 것이다.
게시글 목록 조회 : GET - /api/board
이것에 해당하는 라우터를 등록해보겠다.
뭐가 많다.
파일이 3~4개 있지만 모두 라우팅을 담당하는 파일 들이다.
1. 우선 app.js 에서 최초로 정의한 router인 routes/index.js 에서는 '/api' 요청에 대한 라우팅을 담당했다.
추후에 api 서비스 외 페이지나 기타 다른 종류의 서비스를 분기할 때 이 router에서 처리해주면 된다.
2. 다음 api 하위 서비스들에 대해서 resource 별로 요청을 처리하는 라우터를 등록하는 '/api/index.js' 파일이 있다.
3. 마지막으로 board 리소스에 대한 서비스를 처리하는 '/api/board/index.js' 파일이 있다.
꼭 저렇게 할 필요는 없지만.........그냥 나는 저게 익숙하고 구분이 잘 가서 (찾기 쉬워서) 저런 식으로 구성하는 편이다.
더 좋은 구성이 있으면 알려주세요...
이제 진짜로 무언가 내용을 만들어서 보내주는 controller 를 구성해보자.
여기에서는 간단하게 json 데이터를 응답 데이터로 포함해주었다.
원하는 요청이 잘 처리되는지 확인하기 위해서 브라우저에서 다음과 같이 url을 입력해보자.
http://localhost:3000/api/board
위 url을 브라우저를 통해 접속하게 되면 GET method가 호출되게 되어 다음과 같은 내용이 출력된다.
{"method":"목록조회"}
우선 목록 조회에 해당하는 요청은 테스트 해보았는데...
POST나 PUT, DELETE에 해당하는 서비스는 어떻게 테스트 해 볼 수 있을까?
간단하게 해당 method로 서비스를 호출하는 페이지를 javascript로 만들면 된다.!!!!
지금부터 메모장을 열어서 test.html 파일을 만들고 javascript 로 ajax 서비스를 호출하기 위해서 jquery를 import하고...
이런 삽질 수고로움을 줄이기 위해서 잠깐 간단한 Tool을 소개해보겠다.
구글에서 "postman"이라고 검색해보면 우체부 아저씨 사진이 나올 줄 알았는데, 왠 앱이 하나 나온다.
이 Tool은 API서비스를 테스트해 볼 수 있는 기능을 가지고 있다. (윈도우에서는 Chrome extension 형태만 제공된다.)
Postman 을 활용하여 POST나 PUT, DELETE에 해당하는 기능을 테스트 할 수 있다.
POST 테스트
PUT 테스트
DELETE 테스트
지금까지 Express의 router를 활용하여 Restful 서비스 개발을 위한 기본적인 구조를 만들어보았다.
다음 포스팅을 통해 진짜 데이터를 CRUD 하는 실습을 해보자.
'Javascript > NodeJS' 카테고리의 다른 글
Node.js로 뭔가 만들어보자 - 4. Mongoose를 통해 MongoDB 데이터 다뤄보기 (0) | 2016.07.17 |
---|---|
Node.js로 뭔가 만들어보자 - 2. html로 렌더링 하기 (0) | 2016.07.10 |
Node.js로 뭔가 만들어보자 - 1. 개발환경 구성하기 (0) | 2016.07.02 |
Node.js 로 뭔가 만들어보자 - 프롤로그 (0) | 2016.07.02 |