|
|
1
19
在许多(如果不是大多数)情况下,服务器将向资源添加某些内容,即使它是通过PUT创建或更新的。例如时间戳、版本号或从其他元素计算的任何元素。即使您遵循RESTful方法并且不使用PUT进行部分更新,这也是正确的。 仅出于这个原因,对于PUT请求,返回更新或创建的资源的表示形式通常是一个好主意。我不一定把它称为“最佳实践”,不过如果你放了一个巨大的2GB图像文件,你可能不想把它作为响应的一部分返回。 另一方面,包括ETag,绝对值得“最佳实践”地位。 |
|
|
2
8
杜邦的评论为我指明了正确的方向。我将使用etag通过使用If-match头执行条件PUT来确定资源是否已被修改, as described here 然后,在发生冲突的情况下,我将让用户决定是从服务器获取最新的表示(GET),还是用自己的表示覆盖更改。 因此,不需要在对PUT的响应中返回完整的表示,而只是为了帮助检测和解决冲突。 |
|
|
3
7
POST和PUT看起来也是一对。它们获取序列化对象并使其持久化。因此,我认为POST和PUT都应该返回创建的结果对象。 在某些情况下,作为持久性的一部分,您可能正在进行额外的计算,PUT可能会反映这些计算结果。从技术上讲,这可能是第三个正常形式冲突,因为您有派生值。但通常,web服务的全部目的是在POST和PUT中进行一些增值计算。 |
|
|
4
3
您可能希望考虑退货。
但是,此模式阻止发送适当的成功代码(
如果客户机可能是由人操作的浏览器,那么这可能更合适。 |
|
|
Jakob · 烧瓶REST-API:响应中的数值错误 2 年前 |
|
|
Omar Ahmed · 可以仅使用(CSRF)令牌进行身份验证吗 2 年前 |
|
|
Hyper10n · 从T-SQL查询内部管理HTTP会话 2 年前 |
|
|
Lavonne Riley · 无法获取数据并将其添加到谷歌工作表中 2 年前 |
|
|
testtt · 微服务REST调用和数据库事务 2 年前 |
|
|
JoeBim · PHP中的中程API 2 年前 |