我有一个REST服务. 现在我需要具有将一些子资源从一个父项移动到另一个父项的功能,例如将一本书从一个作者移动到另一个作者. 我的变体是: POST /api/books/x/moveto/y 但是如何以RESTful方
现在我需要具有将一些子资源从一个父项移动到另一个父项的功能,例如将一本书从一个作者移动到另一个作者.
我的变体是:
POST /api/books/x/moveto/y
但是如何以RESTful方式创建这样的架构师呢?
从REST的角度来看,URL应该用于定位资源而不是表达操作.要表达操作,应使用 existing HTTP verbs.看起来你的“移动”操作就是要取代这本书的作者.
而PUT
方法似乎是要走的路:
07002
The
PUT
method requests that the state of the target resource be
created or replaced with the state defined by the representation
enclosed in the request message payload. […]
因此,您可以拥有如下所示的端点:
PUT /api/books/{bookId}/author
请求有效负载将包含新作者的表示.