1.REST API 디자인
2. REST 성숙도 모델
3. Open API 와 API KEY
1.REST API 디자인
API문서는 서버가 리소스를 전달하기 위해 만든 http 메시지 메뉴판이라고 쉽게 정의내릴 수 있습니다. API 아크텍쳐(형식)의 종류 중에는 REST API가 있는데요. 오늘은 REST API에 대해 알아봅시다.
REST API 는 1. URI을 통해 자원을 지정하고 2. HTTP 메서드로 자원에 대한 행동을 정의하는 API 아키텍쳐(형식)입니다. 쉽게 말해 요청속 메시지 속 1. 명사는 URI로 변환 2. 동사는 HTTP 메서드 로 변환하여 작성함을 말합니다. " 1. URI을 통해 자원을 지정"과 "2. HTTP 메서드로 자원에 대한 행동을 표현"이 어떤 의미인지 로이 필링이 제시한 REST 방법론 대신 Richardson 성숙도 모델을 통해 쉽고 간략히 이해할 수 있습니다.
2. REST 성숙도 모델
REST 성숙도 모델은 총 4단계(0~3단계)로 나눌 수 있습니다. 보통 현업에서 마지막 단계(3단계)까지 지키기 어렵기 때문에 2단계까지 적용해도 좋은 API 디자인으로 볼 수 있고, 이런 API 이를 HTTP API 라고도 부릅니다.
* REST API 와 HTTP API https://bentist.tistory.com/37
로이필링이 제시한 rest방법론에 알맞게 작성한 api를 restful api , rest 스타일 api (2단계까지 적용한 api )는 http api 라고 불립니다.
0단계 HTTP 사용
단순히 http 메시지에 HTTP를 사용한다면 0단계는 통과할 수 있습니다. 하지만 아직 REST API라고 말하기는 아직 이릅니다.
1단계 개별 리소스와의 통신 준수
"1. URI을 통해 자원을 지정" 이 여기에 해당할 수 있습니다. 각각의 개별 리소스를 엔드포인트end point (요청이 최종적으로 도달할 URI)로 지정한다라는 말인데 말이 어렵습니다. 풀어 이야기 해보죠. 예를 들어 요청하고 자 하는 메시지가 "나 네이버웹툰페이지 보여줘"이라고 가정해 봅시다. 1. 명사는 URI로 변환 즉 "나 네이버웹툰 페이지 보여줘" 속 "네이버웹툰 페이지"(명사)는 naver.com/ webtoon 과 같은 형식(URI)으로 작성함을 의미합니다.
적절한 엔드포인트 작성이 중요하며 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성해야합니다. 더불어 "허준의사에게 9시에서 12시 사이로 김코딩이라는 이름으로 예약해줘"라는 요청이 있다면 응답 메세지로
사용한 리소스에 대한 정보와 해당 요청에 대한 성공/실패 여부를 반환해야 합니다.
2단계 HTTP 메소드 원칙 준수
2. HTTP 메서드로 자원에 대한 행동을 정의함이 여기에 해당합니다. 이는 요청 메시지 속 동사를 HTTP 메서드 로 변환으로 표현 할 수 있습니다. 즉 메시지"나 네이버 웹툰 페이지 보여줘" 속 보여줘(동사)는 get이라는 http 메소드로 작성함을 말합니다.HTTP Method는GET, POST, PUT, DELETE가 대표적이며, 요청하는 메시지의 행동이 CRUD(Create, Read, Update, Delete)인지 잘 구별하여 POST 메서드를 사용해야 합니다. 2단계까지 지켜도 REST API 이라고 말할 수 있습니다.
HTTP 메소드 | 사용법 | |
GET | 조회 read 데이터 변화 없이 보고 싶을 때 사용. | |
POST | 생성 create | |
PATCH | 수정 update | |
put | 수정 update | |
DELETE | 삭제 delete |
http 메소드 (작성중)
1.GET body x query parameter 를 사용하여 전달
2.POST
3.PATCH
4.put
5.DELETE
이때 get 과 put 의 차이, put 과 patch 의 차이, 명등성
https://www.youtube.com/watch?v=obEfiTekwTc
3단계 HATEOAS 원칙 준수(작성중)
Hypermedia Controls (하이퍼미디어 컨트롤) - HATEOAS라는 개념을 통해 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 합니다. 응답을 받은 클라이언트 개발자들은 링크를 통해 리소스와 기능에 쉽고 효율적으로 접근 가능합니다
3. Open API 와 API KEY
API 중에는 누구나 사용 할 수 있도록 열려있는 API가 있습니다. 이를 Open API 라고 부릅니다. 이는 무제한으로 이용할 수 있다는 말은 아니며 API 마다 정해진 이용규칙과 제한 사항을 따라야 합니다. API를 이용하기 위해서는 API Key가 필요하며 비밀번호라고 쉽게 표현 할 수 있습니다. 서버마다 API Key는 있을 수도, 없을 수도 있습니다.