1. REST
Representational State Transfer
란 웹에 존재하는 모든 자원에 대한 고유한 URI를 부여하여 자원에 대한 주소를 지정하는 방법론 또는 규칙이다.
- API 시스템을 구현하기 아키텍처 중 가장 널리 사용되는 형식이다.
1-2. URI / HTTP / Payload
- URI
👉 Uniform Resource Identifier
👉 해당 사이트의 특정 자원의 위치를 나타내는 주소이다.
👉 ex) finance.naver.com/login
- HTTP Method
👉 HTTP request 가 의도하는 action을 정의하는 것이다.
- Payload
👉 HTTP request 에서 서버로 보내는 데이터를 말한다. (body)
1-3. 정의 및 장점
- 웹상에서 사용되는 여러 리소스를
HTTP URI
로 표현하고 그 리소스에 대한 행위를 HTTP Method
로 정의하는 방식이다.
- 리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현한다.
Self-Descriptiveness
- 그 자체만으로 명확하게 API 의 목적이 쉽게 이해가 된다.
2. REST API 규칙
- URI 정보를 명확하게 표현하다.
👉 resource
를 명사로 표현한다.
👉 ex) GET /user/1 -> GET /users/1
resource
에 대한 행위를 HTTP Method
(GET, POST, DELETE) 로 표현한다.
👉 URI
에 HTTP Method
가 포함되면 안된다.
👉 URI
에 동사가 포함되면 안된다.
👉 ex) GET /user/show/1 -> GET /users/1
resource
사이에 연관 관계가 있는 경우
👉 ex) GET /users/{user_id}/profile
2-1. 설계 규칙
URI
는 /
구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
URI
마지막 문자로 /
를 사용하지 않는다.
- 불가피하게
URI
길어지는 경우 -
를 사용하여 가독성을 높인다.
_
는 사용하지 않는다
URI
경로에는 대문자 사용을 피하도록 규정하고 있다.
- 파일의 경우
payload
의 포맷을 나타내기 위한 파일 확장자를 URI
에 포함하지 않는다.
3. 설계 예시
- path parameter
- query parameter