RESTful API
REST(Representational State Transfer)
웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식. 즉, 리소스(HTTP URI로 정의된)를 어떻게 한다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현
RESTful API란?
REST 특징을 지키면서 API를 제공한다는 의미
장점 : Self-descriptiveness - RESTful API는 그 자체만으로 API의 목적이 쉽게 이해된다.
단점 : 표준 규약이 없어, 안티패턴으로 작성되는 경우가 흔하다
안티패턴 : 실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴
URI / HTTP Method / Payload
URI(Uniform Resource Identifier)
- 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
HTTP Method
HTTP request가 의도하는 action을 정의한 것
Payload
HTTP request에서 server로 보내는 데이터(body)
Request
GET https://10.58.4.1/products
method protocol Host Resource
Response
200 ok
{
name : 'gildong'
nation : 'korea'
}
RESTful API 설계 규칙
1. URI 정보는 명확하게 표현해야 한다.
2. resource는 명사는 사용한다.
ex) GET /user/1 -> GET /users/1 (단수보다는 복수)
3. Resource에 대한 행위를 HTTP Method(GET, POST, DELETE, PUT)로 표현한다.
4. URI에 HTTP Method가 포함되서는 안된다.
ex) GET delete/user/1 -> DELETE /users/1
5. URI에 동사가 포함되서는 안된다.
ex) GET /user/show/1 GET /users/1
ex) POST inser/user/2 -> POST /users/2
6. resource 사이에 연관 관계가 있는 경우
/리소스/고유ID/관계 있는 리소스
ex) GET /users/{user_id}/profile
7. 파일의 경우 Payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다
ex) GET user/1/profile-photo.jpg(x)
ex) GET user/1/profile-photo(이때, payload의 포맷은 headers에 accept를 사용한다)
8. URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다
9. URI 마지막 문자로 /를 포함하지 않는다.
10. 불가피하게 URI가 길어지는 경우 -를 사용하여 가독성을 높인다
11. _는 사용하지 않는다.
12. URI 경로에는 대문자 사용을 피하도록 규정하고 있다.
'TIL' 카테고리의 다른 글
라우팅 (0) | 2022.02.13 |
---|---|
자바스크립트 간단 요약 ver2 (0) | 2022.01.29 |
[TIL] 리액트에서 FontAwesome 사용하기 (0) | 2022.01.26 |
[TIL] HTML 신기한 태그 (0) | 2022.01.18 |
[TIL] 인증 & 인가 (0) | 2022.01.17 |