더북(TheBook)

작업을 http 동사에 매핑하기 어렵다

비즈니스 객체에 수행할 작업을 HTTP 동사에 어떻게 매핑할지도 고민거리입니다. REST API는 데이터를 수정할 때 대개 PUT 동사를 쓰지만, 가령 주문 데이터만 하더라도 이 데이터를 업데이트하는 경로는 주문 취소/변경 등 다양할 수 있습니다. 또 PUT 사용 시 필수 요건인 멱등성(idempotency)이 보장되지 않는 업데이트도 있습니다. 한 가지 해결 방법은 리소스의 특정 부위를 업데이트하는 하위 리소스(sub-resource)를 정의하는 것입니다. 가령 주문 서비스에 주문 취소 끝점 POST /orders/{orderId}/cancel, 주문 변경 끝점 POST /orders/{orderId}/revise를 두는 것입니다. 동사를 URL 쿼리 매개변수로 지정하는 방법도 있지만 REST답지 않아서 gRPC(3.2.2절) 같은 REST 대체 기술이 점점 인기를 끌고 있는 추세입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.