읽을거리/Web API Design
웹 API 설계: 놓치기 쉬운 핵심 - 목차
씨씨상
2024. 10. 21. 18:03
목차
- 서문 (Foreword)
- 소개 (Introduction)
- 웹 API와 REST (Web APIs and REST)
- API 설계자의 역할 (The Job of the API Designer)
- 웹 API란 무엇인가? (What is a web API?)
- REST란 무엇인가? (What is REST?)
- HTTP와 REST: 데이터 지향 설계 패러다임 (HTTP and REST: A Data-oriented Design Paradigm)
- 데이터 지향 접근이 유용한 이유는? (Why is a data-oriented approach useful?)
- API 설계 요소 (API Design Elements)
- 표현 설계 (Designing Representations)
- JSON 사용 (Use JSON)
- JSON을 간단하게 유지 (Keep your JSON simple)
- 링크 포함하기 (Include Links)
- 왜 이 방식이 더 좋은가? (Why is this better?)
- 링크가 있으면 URI 템플릿이 여전히 필요한가? (Are URI templates still needed when you have links?)
- 월드 와이드 웹과의 유사성 (An analogy with the World Wide Web)
- 링크 포함하기, 2단계 (Including links, step 2)
- 주의사항 (A word of caution)
- 리소스에서 링크를 어떻게 표현해야 하는가? (How should I represent links in my resources?)
- 누가 링크를 사용하는가? (Who uses links?)
- 더 많은 내용 (More Later)
- URL 설계 (Designing URLs)
- URL에서 명사는 좋고, 동사는 나쁘다 (In URLs, nouns are good; verbs are bad)
- 잘 알려진 URL (Well-known URLs)
- 엔티티 URL 설계 (Designing entity URLs)
- 영구 링크 (Permalinks)
- 평면적인 웹 (The web is flat)
- 이름 변경 딜레마에 대한 해결책 (Solutions to the renaming dilemma)
- 타입 안정성 (Stability of types)
- 쿼리 URL 설계 (Designing query URLs)
- 쿼리 URL에서 관계 표현하기 (Representing relationships in query URLs)
- URL과 표현에서 관계를 대칭적으로 표현하기 (Express relationships symmetrically in URLs and representations)
- 쿼리 URL에 대한 일반 모델 (A general model for query URLs)
- 경로 매개변수, 또는 행렬 매개변수 (Path parameters, of matrix parameters)
- 컬렉션 필터링 (Filtering collections)
- 영구 자원이 아닌 응답은 어떻게 처리할까? (What about responses that don't involve persistent resources?)
- 표현 설계에 대한 추가 내용 (More on Representation Design)
- 자기 참조 및 종류 속성 포함 (Include self-reference and kind properties)
- 자기 참조와 종류 속성이 왜 좋은 아이디어인가? (Why are the self and the kind properties good ideas?)
- 컬렉션을 어떻게 표현해야 하는가? (How should I represent collections?)
- 페이지네이션된 컬렉션 (Paginated collections)
- 사용자 정의 자원 타입 및 자원 타입을 위한 URL 사용 (Custom resource types and using URLs for resource types)
- 여러 형식 지원 (Supporting multiple formats)
- 속성 이름은 어떻게 해야 하는가? (What about property names?)
- 날짜와 시간 형식 (Date and time formats)
- 자주 호출하는 API (Chatty APIs)
- 자주 호출하는 API (Chatty APIs)
- 쉼표로 구분된 목록에 선택적 필드 추가 (Add optional fields in a comma-delimited list)
- 애플리케이션 개발자가 데이터베이스에서 객체를 쉽게 페이지네이션 할 수 있게 만들기 (Make it easy for application developers to paginate objects in a database)
- 자주 호출하는 API (Chatty APIs)
- 오류 처리 (Handling Errors)
- 사용자에게 메시지 제공 (A message for people)
- 액션 모델링 (Modeling Actions)
- 인증 (Authentication)
- SDK 로 보완하기 (Complement with an SDK)
- 버전 관리 (Versioning)
- 버전 관리를 하지 않기 (Doing nothing for versioning)
- 링크와 URL 내 버전 식별자는 어색한 짝 (Links and version identifiers in URLs make awkward bedfellows)
- 결론 (Conclusion)
- 리소스 (Resources)
- 부록: 링크를 표현하는 다른 접근법 (Appendix: Other Approaches to Representing Links)
[출처]
APIGEE-WEB-API-DESIGN-THE-MISSING-LINK