我现在提供一个通过JAX-WS与JAX-RS(泽西岛)公开的公共服务。
给定服务对类似于HTTP,Create,Find,Update中的项目进行操作。这些可以映射到GET
,POST
和PUT
。但我确实对修改,本地化等项目进行了操作。
项目始终由系统生成的ID和修订版本组成。
第一个很容易实现:
GET /items/{type}/{id}/{revision} -- revision is optional
PUT /items/{type}/{id}/{revision} -- updates the content of a revision
POST /items/{type} -- creates a completely new item
如何映射修改,本地化而不破坏REST的语义?
我习惯使用Spring的@RequestMapping
header
值,并认为我可以使用PUT
执行以下操作。
PUT /items/{type}/{id}/{revision}
Sub-Method: (REVISE, LOCALIZE, etc.)
这不是泽西的可能,但我甚至不知道这是不是一个好方法。
建议高度推荐。
编辑:PUT
修改与上述方法的幂等性相矛盾。