728x90
반응형
일상 속 사물이 알려주는 웹 API 디자인이라는 책을 읽으며 정리한 내용입니다. 

 

프로그래밍 인터페이스 디자인하기

2022.04.19 - [코딩해/개발개발 이것저것] - [API] 일상 속 사물이 알려주는 웹 API 디자인 #3

 

[API] 일상 속 사물이 알려주는 웹 API 디자인 #3

일상 속 사물이 알려주는 웹 API 디자인이라는 책을 읽으며 정리한 내용입니다. 프로그래밍 인터페이스 디자인하기 내용 API 목표를 프로그래밍 인터페이스로 변형하기 REST 리소스와 액션을 식별

haonly.tistory.com

위 글에서 이어집니다!

 

API 목표를 REST API로 변형하는 과정

- REST API가 HTTP 프로토콜을 이용해서 목표를 표현한다.

읽다가 '흠 내가 언제 HTTP 를 제대로 이해한 적이 있나?' 하는 생각이 들었다. 그래서 HTTP부터 공부해보려고 잠시 스터디 중단하고 HTTP부터 공부해보기로 작정!

그래도 해당 장은 마무리하고 싶어서 내용을 요약하자면,

API 목표: 리소스 -> 다른 리소스 인 상황에서 REST API 로 전환하여 HTTP를 이용한 리퀘스트 액션을 구성한다.

어떤 관계로 리소스끼리 구조화되었는지 파악하고, 무엇을 리턴할 것인지 식별하는 과정이 필요하다.

API 목표 캔버스로 리소스와 리소스 사이 관계 식별

요약: 조금 더 세분화하여 누가/무엇을/어떻게/입력/출력/목표를 작성한다. 특히 목표는 동사로 적용되어 리소스에 연결한다.

 

API 목표 캔버스를 이용해 액션과 액션의 파라미터 그리고 반환값 식별

경로를 포함한 리소스 표현

경로 파라미터를 통해 리소스에 대한 접근과 구별을 할 수 있다.

이때 경로는 사용자 친화적이기만 하면 다양한 옵션이 있다.

HTTP로 액션 표현

GET 이냐 POST냐 DELETE 이냐 뭐냐의 쿼리 파라미터(리퀘스트)

REST API와 HTTP 치트시트

전체 그림에 대한 설명인데 그림을 인터넷에서 못 찾겠다 ㅠ

요약하자면,

입력(파라미터)와 출력(반환값), 목표(리소스를 사용하는 동사(액션))에 해당하는 목표 캔버스를 작성하고 

리소스 사이의 관계를 식별한 후 액션에 해당하는 파라미터, 반환값, 리소스 간의 관계를 식별한다.

그 이후 리소스 경로를 디자인하고 액션에 맞는 HTTP 메소드를 선택한다.

 

API 데이터 디자인하기

이제 큰 그림을 그렸으니 디자인을 해야 한다.

어떤 속성들을 포함하여 데이터를 표현할지 등의 컨셉을 디자인해야 한다.

응답에 대한 디자인, 응답의 파라미터에 대한 고려 등.

요청에 대한 파라미터들은 가능한 모두 컨슈머가 제공하는 데이터여야 한다.

 

디자인적 낙관에 봉착했을 때 균형 유지하는 법

-  REST 절충안(액션, 표현 변경) 찾기

- 사용자 편의성과 규칙 준수 균형잡기

 

API를 디자인할 때 REST가 중요한 이유

- REST API는 목표를 경로와 HTTP 메서드에 매핑할 수 있도록 고려되어야 한다.

- 결국 HTTP와 REST 덕에 모든 웹 서버에 요청을 할 수 있는 것.

 


 

간략하게 요약했지만 충분히 이해되었다.

이제 HTTP 공부 빠르게 1년 정도 하고 다시 돌아와야지! 그전에도 공부할 수 있으면 틈틈이 할 것이다.

728x90
반응형

+ Recent posts