Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 버전관리
    • http://domain.com/api/v1.0/users

05. RESTful

  • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.
    • ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가가 공식적으로 발표한 것이 아니다.
    • 즉, REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
  • RESTFUL의 목적은 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이다.

06. REST Api 설계하기

  • 디자인 가이드
    • 첫째: URI는 정보의 자원을 표현해야 한다.
    • 둘째: 자원에 대한 행위는 HTTP Method로 표현한다.
    • 셋째: 응답 코드는 HTTP Status Code로 응답한다.
  • API 설계
    • 01. URI는 정보의 자원을 표현해야 한다. (리소스명은 동사보다는 명사를 사용)
      • GET /members/:id
      • DELETE /members/:id
    • 02. 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용한다. (마지막 문자로 슬래시를 포함하지 않는다.)
      • GET /houses/apartments
      • GET /animals/dogs
    • 03. 하이픈 (-)은 URI 가독성을 높이는데 사용한다.
      • GET /toomushlongstring-home/:id
    • 04. 밑줄(_)은 URI에 사용하지 않는다.
    • 05. URI 경로에는 소문자가 적합하다. (RFC 3986 is the URI Syntax document)
    • 06. 파일 확장자는 URI에 포함시키지 않는다. (Header의 Application-type)
    • 07. 리소스 간의 관계를 표현하는 방법
      • GET /리소스명/리소스ID/관계가 있는 다른 리소스명
      • GET /users/:id/devices
    • 08. 자원을 표현하는 Collection과 Document (sports와 players는 컬렉션 soccer는 도큐먼트)
      • GET /sports/soccer/players/:id
    • 09. HTTP 응답 상태 코드
      • GET /members/:id → Http Status code: 404

07. REST API 설계해 보기

  • Info
    • SNS서비스를 제공하는 회사가 있습니다. 특정회원의 친구 목록을 조회 하려고 합니다. REST API를 설계 하세요.
      1. GET /restapi/v1.0/:id/friends
      2. GET /users/v1.1/:id/friends
      3. GET /restapi/v1.2/users?type=friends
      4. GET /restapi/v1.3/users/:id?type=friends
      5. GET /restapi/v1.4/users/:id/friends


Info