일상 속 사물이 알려주는 웹 API 디자인이라는 책을 읽으며 정리한 내용입니다.
프로그래밍 인터페이스 디자인하기
내용
- API 목표를 프로그래밍 인터페이스로 변형하기
- REST 리소스와 액션을 식별하고 매핑하기
- 컨셉으로 API 데이터 디자인하기
- REST API와 REST 아키텍처 스타일의 차이점
- API 디자인에서 REST 아키텍처 스타일이 중요한 이유
REST: Representational State Transfer
GET, /products/{productId}, 200 OK 라는 용어들의 의미를 이해해야 프로그래밍 인터페이스를 디자인할 수 있다.
REST API는 REST 아키펙처 스타일에서 기반하고 있다.
REST API 소개
REST API 호출 분석
p123이라는 상품 카탈로그 정보를 REST 쇼핑 API를 통해 가져오고자 한다면 HTTP 프로토콜을 이용하여 커뮤니케이션해야 한다.
이 목표가 GET /products/{productId} 로 표현되므로 컨슈머가 위와 같이 리퀘스트를 보내야 하며 서버가 HTTP response로 응답(200 OK)을 반환한다.
경로: 서버상의 리소스를 식별할 수 있는 주소
HTTP 상태코드: request에 대한 응답
response 바디: 응답에 대한 콘텐츠
응답은 JSON 형태이나 단순히 JSON 데이터를 가져오려는 목적으로만 만들어진 것이 아님
HTTP의 기초사항
HTTP는 World Wide Web의 기초.
다양한 상황에서 HTTP 프로토콜을 사용한다. - GET/POST/DELETE 등
HTTP 요청에는 목적이 무엇이든 HTTP 메서드와 리소스 경로가 포함된다.
- HTTP 메서드: GET / POST / DELETE / 등
- 리소스 경로: 어떤 리소스에 접근하는지
REST API의 기초원리
상품 정보를 가져오는 목표를 실행하는 REST 쇼핑 API의 예에서,
컨슈머는 HTTP 리퀘스트를 API 호스팅 서버에 보내야 한다.
이 리퀘스트는 GET HTTP 메서드를 사용해, /products/{productId} 경로로 식별되는 상품을 찾는다.
서버는 상품 데이터와 이를 나타내는 HTTP 상태 코드가 포함된 response를 함께 리턴한다.
결국! REST API는 HTTP 호출 그 이상의 행위를 하지 않는다.
API 목표를 REST API로 변형하는 과정
(to be continued..)
'코딩해 > 개발개발 이것저것' 카테고리의 다른 글
[HTTP] 상태코드 | Multi status response 207 | HTTP Response | Python API 개발 (0) | 2022.05.16 |
---|---|
[API] 일상 속 사물이 알려주는 웹 API 디자인 #4 (0) | 2022.05.03 |
[API] 일상 속 사물이 알려주는 웹 API 디자인 #2 (0) | 2022.04.01 |
[API] 일상 속 사물이 알려주는 웹 API 디자인 #1 (0) | 2022.03.29 |
[kafka] 토픽 파티션 갯수 | 카프카 (0) | 2022.02.14 |