考虑我正在将HTML用于我的REST API媒体类型,它可以是JSON,没关系。
HTML有一个很好理解的<form>
元素,其中包含一个action
和一个method
。但是,如果我要发布到资源位置,并且要防止并发更新,则客户端将需要提供If-Match。
不能使用GET或HEAD检索我发布的URL,因此客户端无法获取最新的ETag。
我注意到HTML和JSON Ion超文本媒体类型都不支持表单上的ifmatch
或etag
。
这将使客户端不再需要先尝试然后失败,然后再进行GET然后再试一次,或者首先获取另一个资源,或者知道并记住从另一个位置保留ETag。
不确定这是我的疏忽还是发疯,将其发布到无法查看的资源位置。
发布到可见的URL的问题是明显的额外代码,它们确实确实支持这种情况。
然后,如果发布到存在其他功能的URL并允许发布其他内容,则必须区分传入数据的“形状”,以便路由到正确的处理代码。
如果使用预先填充的ifmatch
形式,似乎整个事情要简单得多。
所以,问题是
我应该将我的超媒体控件(窗体)设计为具有预先填充的ifmatch
元素吗?
答案 0 :(得分:2)
在输入此内容并使用HTML进行框架化时,我做了一些Google搜索,实际上找到了有用的资源。
http://amundsen.com/examples/put-delete-forms/
迈克建议以HTML格式提出if-match
和if-not-match
!