(Representational State Transfer의 약자) API 대표 아키텍처로,
웹에서 사용하는 데이터나 리소스를 HTTP URL로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다. REST API를 사용한다는 것은 REST 아키텍처의 규칙을 준수한다는 의미이다!
root-endpoint(root-url): API로 요청을 서버와 통신할 때, 서버가 요청을 수락하는 시작점을 말한다. 예를 들어, Github API의 root-endpoint는https://api.github.com이고, 트위터 API의 root-endpoint는https://api.twitter.com이다. 이렇게 root-endpoint는 도메인 주소의 루트(/)를 가리킨다.path(url-path): API를 통해 서버와 통신할 때, 서버와 통신할 수 있는 key 역할을 한다. 서버에 정의된 문자열에 따라 path가 달라진다. 예를 들어,https://api.github.com/user에서는user가path이다.
- 레오나르드 리차드슨의 REST API: 0 ~ 3단계로 나누었다. 보통 2단계까지만 해도 좋은 API 디자인이라 할 수 있다.
0 단계 - HTTP 사용
1 단계 - 개별 리소스와 통신 준수 : 모든 리소스는 개별 리소스에 맞는엔드포인트사용 (리소스에 집중한명사형) & 요청 받은 자원에 대한 정보 (리소스 사용 성공/실패 여부)를 응답으로 전달
2 단계 - HTTP 메소드 원칙 준수 : HTTP 프로토콜의 MethodGET, POST, PUT, DELETE원칙 준수
(예.GET요청 +guery parameter,POST응답 +상태 코드(201 Created),PUT: 수정, 'PATCH' : 교체 등)
3 단계 - HATEOAS 원칙 준수 : 응답에 리소스의 URL을 포함한 링크요소 삽입추가적으로 여기에서 확인 -> Basic REST API Design Guidelines
Open API: 누구에게나 열려있는, 사용 가능한 API이다. 사용은 가능하지만, API마다 정해진 이용 규칙(만료일자, 요청횟수, 가격, 정보 제한 등)을 준수해야 한다.
(예. 공공데이터포털에서 제공하는 공공데이터는Open API형태로 제공되고 있다. 아래Postman에서 사용할Open Weather Map이라는 웹 사이트에서 제공하는 날씨 API 도Open API이다.)API Key: 서버의 문을 여는 열쇠로, API를 이용하기 위해 필요하다. 로그인된 이용자에게만 리소스 접근 권한을API Key형태로 제공한다. 데이터를 요청할 때, 함께 전달해야 응답을 받을 수 있다. (ssh-key와 비슷한 느낌이다.)
yes! 🙌
Postman은 HTTP API 테스트 도구이다. 매번 URL을 입력하고 요청을 보내는 것이 번거롭기 때문에 이 페이지를 통해 쉽게 요청을 테스트할 수 있다.
yes! 👏
먼저Open Weather Map에 가입한 후,API Keys를 받을 수 있다.
예를 들어 서울의 최근 날씨 데이터를 받아와 보자.
메뉴의Current Weather Data에 있는API Doc을 누른다.
다음 페이지의By city ID->API call에서 요청을 보낼 URI을 알 수 있다.api.openweathermap.org/data/2.5/weather?id={city id}&appid={API key}여기에 서울의
city id는1835848나의API key에는 아까 받은 키를 입력한다.
그러면 위와 같이 요청에 대한 데이터를 받을 수있다. 위 동작을Postman에서도 할 수 있다. 아래에서 보이는 것과 같이 요청에 원하는 HTTP 메소드를 선택하고(GET), URL을 입력하면 아래에Params에서 자동으로 키와 벨류를 정리해 준다.Send를 누르면,
위에서 보이는 대로 노란 박스처럼 상태코드Status: 200 OK를 알 수 있고, 데이터 정보를JSON의 정리된 형태로 받을 수 있다.지금은 조회(
GET)만 해 보았기 때문에 테스트 도구의 절실한함(?)은 모르겠지만, 나중에 프로젝트를 할 때POST를 쓰거나PATCH,DELETE를 테스트할 때에는 아주 유용할 것 같다.
c과제는 죽어서 하는 것.. 🥲