我正在使用 ASP.NET Web API 将基于 SOAP 的 RPC 样式“Web 服务”转换为基于 JSON 的 REST Web 服务。AddXYZ / UpdateXYZ / RemoveXYZ 等方法干净地映射到 POST/PUT/DELETE 的 HTTP 动词。是否有任何最佳实践/指导将典型的 RPC 样式操作(例如“ExecuteXYZ”或“AssignXYZ”样式方法)映射到它的 REST 对应项?我的看法是,此类操作将映射到相应的 URL 可寻址资源,例如“ExecuteXYZRequest”和“AssignXYZRequest”
http://myhost/myservice/ExecuteXYZRequest
http://myhost/myservice/AssignXYZRequest
然后,执行“ExecuteXYZ”的请求将转换为 POST 操作。
获取提交的请求将转换为 GET(通常用于获取提交的请求的状态)。
http://myhost/myservice/ExecuteXYZRequest/1 <--- 1 is the ID of the request
取消请求(假设它是可取消的)将转换为 DELETE
POST 不会真正映射到任何东西。
以上听起来像是一个合理的 REST 实现,还是我完全不在乎我的想法?非常感谢思想/指导。
更新 这是我试图建模的具体示例:联系人和事件实体之间的多对多关系。将联系人的成员资格建模为 REST 资源的最佳方法是什么,以便可以从事件中添加/删除联系人。在 RPC 领域,这将是诸如“AssignContactToEvent”之类的方法,它获取两个实体的 ID 并建立这两者之间的关系。如何在 REST 中自然地将其建模为资源。我记得有一个链接和“rel”的概念,但找不到一个具体的实际示例来说明如何使用 Web API 对这样的东西进行建模