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를 구성하는 스타일
- Client-Server (클라이언트-서버 구조)
- 무상태성 (Stateless)
- 캐시 처리 가능 (Cacheable)
- 계층화 (Layered System)
- 인터페이스 일관성 (Uniform Interface)
- 리소스가 URI로 식별
- 리소스의 표현을 HTTP 메시지에 담아 전송
- self-descriptive
- HATEOAS
- Code-on-demand(optional)
HATEOAS
- Hypermedia As The Engine Of Application State
- Hypermedia(링크)를 통해 애플리케이션의 상태 전이가 가능해야 한다.
- 각 요청의 응답에, 가용한 다른 요청들의 정보를 포함한다.
- 클라이언트는 서버의 상태와 행동을 알 필요가 없으며, 서버 측의 변경에도 클라이언트에선 일일이 대응하지 않아도 된다.
REST API 설계 규칙
- 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
- 슬래시 구분자(/)는 계층 관계를 나타내는데 사용한다.
- 마지막에 슬래시(/)를 포함하지 않는다.
- 언더바(_) 대신 하이픈(-)을 사용한다.
- 파일확장자는 URI에 포함하지 않는다.
- 행위(CRUD)를 포함하지 않는다.
검색 및 필터링:
- 특정 조건으로 필터링할 때는 Query parameter나 Pagination을 활용한다.
[참고]
[네트워크] REST API란? REST, RESTful이란?