RESTful API란?

RESTful API는 Representational State Transfer 아키텍처 스타일을 따르는 API를 의미한다.

이는 다음과 같은 구성 요소와 스타일을 가지고 있다.

 

REST의 구성요소

  • 자원(Resource): URI
  • 행위(Verb): HTTP Method (CRUD Operation)
  • 표현(Representation): Payload

CRUD Operation

  • Create: 데이터 생성(POST)
  • Read: 데이터 조회(GET)
  • Update: 데이터 수정(PUT, PATCH)
    • PUT: 데이터 전체 수정
    • PATCH: 데이터 일부 수정
  • Delete: 데이터 삭제(DELETE)

REST를 구성하는 스타일

  1. Client-Server (클라이언트-서버 구조)
  2. 무상태성 (Stateless)
  3. 캐시 처리 가능 (Cacheable)
  4. 계층화 (Layered System)
  5. 인터페이스 일관성 (Uniform Interface)
    • 리소스가 URI로 식별
    • 리소스의 표현을 HTTP 메시지에 담아 전송
    • self-descriptive
    • HATEOAS
  6. Code-on-demand(optional)

HATEOAS

  • Hypermedia As The Engine Of Application State
  • Hypermedia(링크)를 통해 애플리케이션의 상태 전이가 가능해야 한다.
  • 각 요청의 응답에, 가용한 다른 요청들의 정보를 포함한다.
  • 클라이언트는 서버의 상태와 행동을 알 필요가 없으며, 서버 측의 변경에도 클라이언트에선 일일이 대응하지 않아도 된다.

REST API 설계 규칙

  1. 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
  2. 슬래시 구분자(/)는 계층 관계를 나타내는데 사용한다.
  3. 마지막에 슬래시(/)를 포함하지 않는다.
  4. 언더바(_) 대신 하이픈(-)을 사용한다.
  5. 파일확장자는 URI에 포함하지 않는다.
  6. 행위(CRUD)를 포함하지 않는다.

검색 및 필터링:

  • 특정 조건으로 필터링할 때는 Query parameter나 Pagination을 활용한다.

 

[참고]

[네트워크] REST API란? REST, RESTful이란?

HATEOAS까지 사용해야 완벽한 RESTful이다.

Day1, 2-2. 그런 REST API로 괜찮은가

 

+ Recent posts