요청 | REST API |
---|---|
user들의 정보를 get 하고자 함 | [GET] http://localhost:8000/users |
starbucks에서 1번 beverages의 정보를 get 하고자 함 | [GET] http://starbucks.com/beverages/1 |
starbucks에서 2번 beverage를 주문하고자 함 | [POST] http://starbucks.com/order - body {beverage:2} |
RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 된다.
동작 방식을 명확하고 간결하게 보여주기 때문에 상호 작용에 대한 추가정보 없이도 이해할 수 있다.
→ 클라이언트와 서버 간의 통신을 더 쉽게 만든다.
BAD | GOOD |
---|---|
[GET] /find/users/1 | [GET] /users/1 |
[GET] /users/show/1 | [GET] /users/1 |
[POST] /insert/user/2 | [POST] /users/2 |
BAD | GOOD |
---|---|
[GET] /delete/users/1 | [DELETE] /users/1 |
[POST] /post/products | [POST] /products |
Resource 사이에 연관 관계 및 계층 관계가 있는 경우 ('/')
를 사용한다.
URI가 길어지는 경우 -
를 사용하여 가독성을 높인다.
BAD | GOOD |
---|---|
[GET] /users/1/ordered_items | [GET] /users/1/ordered-items |
GET /api/users/{userId}
예시 : 네이버 지도에서는 장소마다 고유한 URI를 부여하고, 특정 자원에 접근할 수 있도록 만들었다.
→ https://map.naver.com/v5/entry/place/:placeId
?
를 시작으로 하고 key=value
쌍으로 이루어진 문자열 형태로 전달된다.GET /api/products?category=electronics&brand=samsung
예시 : 마켓컬리에서는 필요한 조건을 요청에 따라 선택적으로 처리할 수 있는 통일된 API를 구성하고 있다.
→ https://www.kurly.com/categories/907?filtering-query-parameters