읽을거리/Web API Design

웹 API 설계: 놓치기 쉬운 핵심 - 목차

씨씨상 2024. 10. 21. 18:03

 

 

목차

 

 

  1. 서문 (Foreword)
  2. 소개 (Introduction)
  3. 웹 API와 REST (Web APIs and REST)
    • API 설계자의 역할 (The Job of the API Designer)
    • 웹 API란 무엇인가? (What is a web API?)
    • REST란 무엇인가? (What is REST?)
  4. HTTP와 REST: 데이터 지향 설계 패러다임 (HTTP and REST: A Data-oriented Design Paradigm)
    • 데이터 지향 접근이 유용한 이유는? (Why is a data-oriented approach useful?)
    • API 설계 요소 (API Design Elements)
  5. 표현 설계 (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)
  6. 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?)
  7. 표현 설계에 대한 추가 내용 (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)
  8. 자주 호출하는 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)
  9. 오류 처리 (Handling Errors)
    • 사용자에게 메시지 제공 (A message for people)
  10. 액션 모델링 (Modeling Actions)
  11. 인증 (Authentication)
  12. SDK 로 보완하기 (Complement with an SDK)
  13. 버전 관리 (Versioning)
    • 버전 관리를 하지 않기 (Doing nothing for versioning)
    • 링크와 URL 내 버전 식별자는 어색한 짝 (Links and version identifiers in URLs make awkward bedfellows)
  14. 결론 (Conclusion)
    • 리소스 (Resources)
  15. 부록: 링크를 표현하는 다른 접근법 (Appendix: Other Approaches to Representing Links) 

 

 

 

 

 

[출처]

APIGEE-WEB-API-DESIGN-THE-MISSING-LINK