Notice
Recent Posts
Recent Comments
Today
Total
05-16 05:42
Archives
관리 메뉴

Jeongchul Kim

Express와 Postman을 이용한 개방형 API 실습 본문

사물인터넷

Express와 Postman을 이용한 개방형 API 실습

김 정출 2016. 2. 11. 15:07


개방형 API 설계 실습

1. 실습 영상

개방형 API 설계 실습

Express를 이용한 개방형 API 설계 실습


1. Express로 생성한 app.js 열기


2. 필요한 객체들을 연결하는 부분


3. 라우터 객체는 ‘/routes/index’ 에 연결되어 index.js로 실행됨.


4. 브라우저나 개방형 API를 쓰는 애플리케이션에서 URL을 주면 핸들로 넘어옴.

5. router.get은 홈페이지가 열리는 부분을 코딩한 부분

6. 개방형 API로 URL을 ‘/api/sensors’로 설정 -> router.get(‘/api/sensors’,~~)

7. 센서의 아이디까지 라우팅하는 부분 -> router.get(‘/api/sensors/:id’,~~)



8. GET, POST, PUT, DELETE 메소드 핸들러 부분

9. 서비스 실행하기

10. 명령 프롬프트 창에 npm start를 입력하여 서버 실행

11. Postman을 이용해서 테스트

12. 브라우저에 127.0.0.1:3000 입력

13. api/sensors 부분 : 센서 객체를 JSON 코드로 리턴하는 부분

14. 주소에 http://127.0.0.1:3000/api/sensors/

15. Postman에서 GET 선택 후  http://127.0.0.1:3000/api/sensors/ Send

16. GET 에서 http://127.0.0.1:3000/api/sensors/0 Send

17. GET 에서 http://127.0.0.1:3000/api/sensors/1 Send

18. GET 에서 http://127.0.0.1:3000/api/sensors/3 Send


404 Not Found 에러 메시지 발생

19. npm에서 로그 확인



2. 코드 내용 확인

실습 영상을 잘 살펴보셨나요? 실습 영상의 주요 내용을 다시 한 번 짚고 넘어가도록 하겠습니다.

개방형 API 실습을 위해 화면과 같이 폴더를 구성합니다. 우선, app.js 파일의 내용을 살펴보겠습니다.

app.js 파일을 클릭해 보세요.

app.js 파일의 내용은 다음과 같습니다. 스크롤을 사용하여 전체 코드의 내용을 살펴보세요.

app.js 파일은 JSON 포맷을 사용하여 전송됩니다. 코드 중 첫 부분은 개방형 API 서비스에 필요한 객체를 연결한 것입니다. 이 중에서 'var routes = require' 부분은 URL 라우팅을 위해 라우터 객체를 설정하는 부분입니다. 라우터 객체는 routes/index에 연결되어 routes 폴더의 index.js 파일로 실행됩니다. 브라우저나 개방형 API를 쓰는 애플리케이션에서 URL을 주면 핸들러로 넘어가는데, 그 핸들러를 설정하는 파일이 바로 routes/index 파일입니다.


폴더의 목록에서 routes 폴더에 있는 index.js 파일을 클릭해보세요.


routes/index.js 파일의 내용은 다음과 같습니다.

routes/index.js 파일에서 화면에 표시된 부분은 센서 객체를 설정한 부분입니다. 여기에서는 온도 센서 1과 2가 설정되어  있고, 각각의 아이디와 스위치에 연결 상태까지 확인할 수 있습니다.



센서 객체를 설정한 다음 부분에는 CRUD 설정이 되어 있습니다.


CRUD는 Create, Read, Update, Delete의 앞글자를 딴 것으로, 객체의 생성(Create), 읽기(Read), 갱신(Update),

삭제(Delete)를 핸들링하는 것입니다. 각각 GET, POST, PUT, DELETE 메소드와 1대 1로 대응됩니다. 이 CRUD 부분은 홈페이지와 연결 설정을 코딩한 것으로 브라우저에 URL 주소를 입력하면 해당되는 내용이 출력되는 것을 확인할 수 있습니다.router.get은 console.log를 통해서, 각각의 센서 객체를 개별적으로 불러들일 수 있으며, 센서 아이디가 설정되지 않은 경우에는 404 에러 메시지를 출력하도록 설정되어 있습니다.



다음으로 router.post는 객체를 생성하며, router.put은 객체의 갱신을, router.delete는 객체의 삭제를 설정합니다. 각 메소드의 아랫줄에 있는 res.send는 Postman 애플리케이션에서해당 메소드를 선택한 후 Send 버튼을 클릭할 때 나오는 메시지를 설정하고 있습니다. 예를 들어, Postman 애플리케이션에URL을 입력하고, POST를 설정한 뒤 Send 버튼을 클릭하면, 코드에 써 있는 'Got a POST request'라는 메시지가 출력됩니다.



Comments