Representational State Transfer 는 HTTP 의 장점을 최대한 활용할 수 있는 아키텍처로서 REST를 소개했고 이는 HTTP 프로토콜을 의도에 맞게 디자인하도록 유도하고 있다. REST의 기본 원칙을 성실히 지킨 서비스 디자인을 "RESTful"이라고 표현한다.
REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처고, REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미한다.
-모던 자바스크립트 Deep Dive-
☑ REST API 의 구성
자원/행위/표현의 3가지 요소로 구성된다.
☑ 좋은 REST API를 디자인 하는 방법
REST성숙도 모델은 총 4단계로 나눠져 있고, 이중 2단계까지만 달성되어도 좋은 API 디자인이라고 볼 수 있다.
☑ REST API 설계원칙
1) URI 는 리소스를 표현해야 한다.
URI 는 리소스를 표현하는데 중점을 두어야 하며, 동사는 명사사용을 한다.
이부분은 아래 체크포인트에서 확인해볼 수 있다.
2) 리소스에 대한 행위는 HTTP 요청 메소드로 표현한다.
HTTP 요청 메소드는 클라이언트가 서버에게 요청의 종류와 목적(리소스에 대한 행위)을 알리는 방법이다.(페이로드는 데이터,여기서는 본문의 유무)
❗ Open API & API Key
- Open API : 말 그대로 누구에게나 열려있는 API 이지만 이용수칙에 따라 제한사항 있을 수 있다.
- API Key : 서버의 문을 여는 열쇠라고 생각하면 쉽다. 로그인된 이용자에게만 자원에 접근할 수 있는 권한을 API Key의 형태로 제공.
Post Man은 HTTP API 테스트 도구 중 하나이다. 사용하기 쉬워서 이번 실습에 이용되었다. 이걸 사용하면서 추상적으로 진행되던게 실제로 눈에 보이니 어떻게 진행되는지 대충 그림이 그려졌다.
리소스를 요청하고자 할 땐, Get을 설정하고 다음에 URI을 입력한다. 그리고 Send버튼을 클릭하면 아래에 본문이 뜬다.
반대로 리소스를 생성하려고 하면 Post버튼을 설정하고 URI를 입력한다. 그리고 생성할 내용을 body에 작성한다. 작성시엔 아래와 같은 형식으로 진행한다.
(https://openweathermap.org/)
여기에 접속하여서 일단 가입한다. 그러면 내게 주어진 API key를 확인한다. 해당 사이트에서 원하는 API를 탐색한다. 그리고 api doc를 누르고 거기에서 제공하는 URI를 복사한다. 그 URI 에서 city id와 그리고 나의 api key를 입력하여 구글 검색창에 입력하면 아래와 같이 뜬다.