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