首页 > 解决方案 > 在 REST API 中定义操作

问题描述

我正在处理一个消息请求,该请求将包含用于在目标中创建记录的完整请求详细信息。

这种集成在不同时间创建了 3 种不同类型的记录(订单、装运、发票),即并不总是可以一次创建所有记录,因此我需要让系统知道只创建某些请求。

我的问题,在请求中添加此信息的最佳方式是什么?

标签: design-patternsintegrationrestintegration-patterns

解决方案


请求的有效 uri 应该标识正在修改的文档;有效载荷应该是描述修改的文档。

POST /home.html
Content-Type: text/plain

Bob, please fix the spelling error in the title.  Thanks.

/home.html 标识我们正在修改的文档;正文告诉我们客户想要进行的修改。

统一的接口约束确保每个人(服务器、客户端、中间组件)都以相同的方式解释此消息——请求的语义在任何地方都是相同的,响应的语义也是如此。

请注意,我们不会将请求发送到/home.html?editor/home.html?operation=edit因为它们是两个不同的资源(我们知道这一点,因为标识符不同)。通过正确识别我们在请求中修改的资源,我们可以让通用组件清楚地知道发生了什么,这样它们就可以做一些智能的事情(比如使缓存失效)。

信息是否需要在“单独的对象”中是模式设计的问题;HTTP 真的不关心您在通过网络传输的文档中使用什么模式。


推荐阅读