REST API란?
REpresentational State Transfer
웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
표준 메서드 : List, Get, Create, Update, Delete
REST API 디자인하는 방법
실제로는 엄밀하게 3단계까지 지키기 어렵기 때문에 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있다. => HTTP API
REST 성숙도 모델 - 0단계
REST API 를 작성하기 위한 기본 단계.
단순히 HTTP 프로토콜을 사용하기만 해도 된다.(해당 API를 REST API 라고 할 수는 없다.)
POST 메서드 사용.
엔드포인트 : /appointment
REST 성숙도 모델 - 1단계
개별 리소스와의 통신을 준수해야한다.
POST 메서드 사용.
모든 자원은 개별 리소스에 맞는 엔드포인트를 사용해야하며 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다.
1. 예약 가능한 시간 확인
엔드포인트 : /doctors/허준
2. 특정 시간에 예약
엔드포인트 : /slots/123 (slots라는 리소스의 123이라는 id를 가진 리소스가 변경됨)
**엔드포인트 작성시, 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성
**요청에 따른 응답으로 리소스를 전달할 때, 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공/실패 여부를 반환해야 한다.
REST 성숙도 모델 -2단계
CRUD에 맞게 적절한 HTTP 메서드를 사용
- 예약 가능한 시간을 확인 : 조회(READ) => GET 메서드 사용하여 요청 보내기.
(GET메서드는 body를 가지지않기 때문에 query parameter를 사용하여 필요한 리소스를 전달)
- 특정시간에 예약 : 생성(CREATE) => POST 메서드를 사용하여 요청 보내기.
★★POST요청에 대한 응답이 어떻게 반환되는지가 중요!!
응답코드 201 Created (새롭게 생성된 리소스를 보내준다.)
이를 클라이언트가 Location 헤더에 작성된 URI를 통해 확인 할 수있도록 하면 REST성숙도 모델의 2단계를 충족한 것.
HTTP 메서드를 사용할 때의 규칙
1. GET 메서드 : 서버의 데이터를 변화시키지 않는 요청에 사용해야 한다.
2. POST메서드 : 요청마다 새로운 리소스를 생성하교 PUT 메서드는 요청마다 같은 리소스를 반환한다.
멱등성을 가지는 메서드 PUT 과 그렇지 않은 메서드 POST는 구분해서 사용해야 한다.
(※멱등성을 가지는 메서드 : GET , PUT, DELETE / 멱등성을 가지지않는 메서드 : POST, PATCH)
(※멱등 : 매 요청마다 같은 리소스를 반환하는 특징)
3. PUT 메서드 : 교체
4. PATCH : 수정
REST 성숙도 모델 - 3단계
HATEOAS(Hypertext As The Engine Of Application State. 하이퍼미디어 컨트롤) 적용
요청 : 2단계와 동일
응답 : 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
Open API and API Key
Open API
정부에서 제공하는 공공데이터.
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
위 사이트에서 원하는 키워드를 검색하면 해당 키워드와 관련된 API 확인 가능.
정해진 이용 수칙이 있고, 그에 따라 제한사항(가격, 정보 등) 이 있을 수 있다. //무제한 이용가능?X
API Key
서버의 문을 여는 열쇠.
'개발공부 > 네트워크' 카테고리의 다른 글
네트워크[심화] (0) | 2022.09.07 |
---|---|
[HTTP/네트워크] 기초 (0) | 2022.08.04 |