1부. API 디자인 기초
1. API 디자인이란 무엇인가?
1.1 API란 무엇인가?
1.1.1 소프트웨어를 위한 웹 인터페이스
1.1.2 소프트웨어를 레고처럼 바꾼다
1.2 API 디자인이 중요한 이유
1.2.1 퍼블릭, 프라이빗 API는 다른 개발자들도 사용한다
1.2.2 API는 구현을 숨겨준다
1.2.3 API를 어설프게 디자인하면 끔찍한 결과가 이어진다
1.3 API 디자인에 필요한 요소
1.3.1 프로그래밍 인터페이스 이상의 디자인 원리 이해
1.3.2 API 디자인의 모든 측면
2. 사용자를 위한 API 디자인하기
2.1 일상 속 사용자 인터페이스를 디자인하는 올바른 관점
2.1.1 작업 방식에 집중하면 인터페이스가 복잡해진다
2.1.2 사용자가 할 수 있는 일에 집중하면 인터페이스는 단순해진다
2.2 소프트웨어 인터페이스 디자인 방법
2.2.1 API를 소프트웨어의 제어판처럼 바라보기
2.2.2 컨슈머의 관점에 집중해 단순한 API를 만들기
2.3 API의 목표 식별 과정
2.3.1 무엇을 어떻게 하는가
2.3.2 어떤 걸 입력하고 어떤 게 출력되는가
2.3.3 누락된 목표가 있는가
2.3.4 모든 사용자를 찾아냈는가
2.3.5 API 목표 캔버스
2.4 API 디자인에서 피해야 할 프로바이더 관점
2.4.1 데이터가 미치는 영향
2.4.2 코드와 비즈니스 로직이 주는 영향
2.4.3 소프트웨어 아키텍처에서 받는 영향
2.4.4 인적 조직으로 인한 영향
2.4.5 API 목표 캔버스에서 프로바이더 관점 찾기
3. 프로그래밍 인터페이스 디자인하기
3.1 REST API 소개
3.1.1 REST API 호출 분석
3.1.2 HTTP의 기초사항
3.1.3 REST API의 기초원리
3.2 API 목표를 REST API로 변형하는 과정
3.2.1 API 목표 캔버스로 리소스와 리소스 사이 관계 식별
3.2.2 API 목표 캔버스를 이용해 액션과 액션의 파라미터 그리고 반환값
이 책은 총 3부, 13장으로 구성되어 있습니다. 이 책은 모든 장을 처음부터 끝까지 순서대로 읽어야 합니다. 각각의 장은 이전 장에서 배운 내용을 확장해 나갑니다. 즉, 1, 2, 3장을 마쳐야 디자인에 관한 주제를 다루는 장으로 이동할 수 있습니다.
1부. API 디자인 기초
API를 디자인할 때 필요한 기본 개념과 기술들을 다룹니다. 1장은 API가 무엇인지, 디자인이 왜 중요한지 API 디자인을 구성하는 요소가 무엇인지 설명합니다. 2장은 API 사용자의 관점과 API를 사용하는 소프트웨어의 관점에 초점을 맞추어서 API를 노출시키지 않는 소프트웨어를 만들고 API의 실제 목표를 결정하는 방법을 설명합니다. 3장은 HTTP 프로토콜과 REST API, REST 아키텍처 스타일을 소개합니다. 4장은 OpenAPI 명세를 소개하며 목표를 기반으로 API 설명 형태로 API를 구조화하는 방법을 알려줍니다.
2부. 사용하기 좋은 API 디자인
이해하기 쉽고 사용하기 쉬운 API를 설계하는 방법에 중점을 둡니다. 5장은 사람들이 즉시 이해하고 쉽게 사용할 수 있도록 간단한 데이터 표현, 오류 및 성공 피드백, API 호출 흐름을 디자인하는 방법을 설명합니다. 6장은 컨슈머가 일관성 있고 적응 가능하며 검색 가능한 API를 만들어 작동 방식을 추측하기 쉬운 API 를 설계하는 방법을 설명합니다. 7장은 API의 모든 측면을 이해하고 사용하기 쉽게 구성하고 크기를 조정하는 방법을 보여줍니다.
3부. 상황에 맞는 API 디자인
API 디자이너가 API를 둘러싼 전체 컨텍스트와 API 디자인 프로세스 자체를 둘러싼 전체 컨텍스트를 고려 해야 하는 이유를 알려줍니다. 8장은 API 보안과 안전한 API를 디자인하는 법을 설명합니다. 9장은 사용자 들에게 영향을 끼치지 않고 API를 수정하는 법과 버저닝하는 방법을 알려줍니다. 업그레이드하기 좋은 API 를 만드는 방법도 소개합니다. 10장은 네트워크에 효율적인 웹 API를 디자인하는 방법을