웹에서 사용되는 데이터나 자원(리소스)을 HTTP URI로 표현하고, HTTP프로토콜을 통해 요청과 응답을 정의하는 방식
= 클라이언트가 이해하기 쉽게 알아보기 쉽고 잘 작성된 메뉴판같은 역할! 사실 3단계까지 가는건 쉽지 않음. 2단계까지만 적용해도 좋은 API디자인이다 ⇒ HTTP API라고 부름
그냥 HTTP프로토콜 사용하는 것. ⇒ REST API라고 말할 순 없고 그냥 기반..정도로 볼 수 있음
(HTTP프로토콜을 사용하고 있다. 그게 다다.)
GET
메서드 사용하여 요청201 Created
+Location
헤더에 작성된 URI를 통해 확인할 수 있게 함POST
메서드에 대한 응답이 어떻게 반환되는지 중요GET
메서드 같은 경우 서버의 데이터를 변화시키지 않는 요청에만 사용 (조회만!)POST
메서드는 요청마다 새로운 리소스 생성PUT
메서드는 요청마다 같은 리소스 반환 (교체의 용도 / 멱등하다)POST ≠ PUT
(구분하기)PATCH
는 수정의 용도PUT ≠ PUT
(구분하기)HATEOAS(Hypermedia As The Engine Of Application State)라는 하이퍼미디어 컨트롤 적용.
2단계 + 응답하는 리소스의 URI를 포함한 링크요소 삽입하여 작성
(응답 받은 다음 할 수 있는 다양한 액션들을 위해 많은 하이퍼미디어 컨트롤 포함)
(예. 허준이라는 의사 예약 가능 시간 확인 후 예약 가능한 링크 삽입
특정 시간에 예약을 완료하고 그 예약을 다시 확인할 수 있는 링크 삽입)
*응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것!
정부에서 제공하는 공공데이터 (쉽게 접근할 수 있도록 OPEN API형태로 공공데이터 제공중)
→ 누구에게나 열려있는 API (근데 무제한 아님, 이용수칙 존재, 제한 사항 존재)
API 사용하려면 API Key가 필요하다(서버의 문을 여는 열쇠) (가끔 필요없을 수도 있음)
로그인한 이용자에게 리소스에 접근할 수 있는 권한 → API Key형태로 제공
데이터를 요청할 때 API Key를 같이 전달해야 원하는 응답 받음.