RESTful API(Application Program Interface)
- API 시스템을 구현하기 위한 아키텍처 중에 가장 널리 사용되는 형식
URI / HTTP Method / Payload
HTTP Method
- HTTOP request가 의도하는 action을 정의하는 것
Payload
- HTTP request에서 server로 보내는 데이터 (body)
Representational State Transfer
- 리소스(HTTOP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현
- Rest 방식이 적용된 RESTful API
- 삼성전자 주식 정보를 받기 위한 HTTP 요청
Self-descriptiveness
- 여러 장점들이 있지만, 사실 그중 가장 명확한 장점은 self-descriptiveness 이다.
- RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 된다.
RESTful API 설계 규칙
- URI 정보를 명확하게 표시한다. resouce는 명사를 사용한다.
ex)GET/user/1 -> GET/users/1
- resouce에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
- URI에 HTTP Method가 포함되서는 안된다.
ex)GET delete/user/1 -> DELETE/users/1
- URI에 동사가 포함되서는 안된다.
ex)GET/user/show/1 -> GET/users/1
- resource 사이에 연관 관계가 있는 경우
- /리소스/고유ID/관계 있는 리소스
ex)GET/users/{user_id}/profile
- URI는
/
구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
- URI 마지막 문자로
/
를 포함하지 않는다.
- 불가피하게 URI가 길어지는 경우
-
를 사용하여 가독성을 높인다.
_
는 사용하지 않는다.
- URI 경로에는 대문자 사용을 피하도록 규정하고 있다.
- 파일의 경우 payload의 호맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다.
RESTful API 설계 예시 -Path parameter