2021-05-18-TIL
2021-05-18-TIL
RESTful search or filtering
GET /rooms?checkIn="2021-05-10"&checkOut="2021-05-20"&min=10000&max=100000&guests=3
와 같이 url의 파라미터로 값을 포함시키는 것이 바람직한가? 또는 GET /rooms
에서 request body를 갖도록 하는 것이 바람직한가? 아니면 POST /rooms
에서 request body를 포함시키는 것이 바람직한가?
많은 참고자료에서 언급한 바로는 적당한 길이의 파라미터라면
GET /rooms?checkIn="2021-05-10"&checkOut="2021-05-20"&min=10000&max=100000&guests=3
과 같이 파라미터에 포함시키는 것이 바람직하다고 한다. RESTful 설계에서GET
요청에 body를 가지는 것은 매우 권장하지 않는다.그렇다면 파라미터가 매우 긴 경우에도 url에 모든 값을 포함시키는 것이 바람직한가? 여기에서 파라미터에 포함시키지 않는 방법은 POST에 request body를 포함시키는 것이다. 단, 이때는 POST에 해당하는 url에 겹치는 요청이 없어야한다. 만약 겹치게 된다면 또 다른 요청 url을 설계하는 수 밖에 없다.
하지만 POST나 PUT을 사용하는 방법은 예기치 않은 문제를 야기시킬 수 있다는 점에서 권장하지 않는다. 구글의 필터 검색 예시 처럼 최대한 간결하고 짧은 url을 설계하도록 노력해야한다.
결론: GET에서 파라미터를 가지는 방법으로 최대한 해결을 하고, 그것의 여의치 않으면 POST에서 request body를 가지는 방법을 사용한다.
- https://stackoverflow.com/questions/5020704/how-to-design-restful-search-filtering
- https://softwareengineering.stackexchange.com/questions/233164/how-do-searches-fit-into-a-restful-interface
- https://devdocs.magento.com/guides/v2.4/rest/retrieve-filtered-responses.html
- https://devdocs.magento.com/guides/v2.4/rest/performing-searches.html
- https://simonplend.com/how-to-build-filtering-into-your-rest-api/
- https://developers.shopware.com/developers-guide/rest-api/examples/filter/
- https://stackoverflow.com/questions/7108932/rest-url-structure-advice
Kakao Map API
Name | Type | Description |
---|---|---|
x | String | X 좌표값, 경위도인 경우 longitude(경도) |
y | String | Y 좌표값, 경위도인 경우 latitude(위도) |
Kakao Map API를 사용할 것이므로 x, y 좌표에 대한 String 값을 저장하도록 한다.
- https://developers.kakao.com/docs/latest/ko/local/dev-guide
Web Commerce REST API
- https://help.hcltechsw.com/commerce/7.0.0/com.ibm.commerce.starterstores.doc/concepts/cwvrestapi.html