REST:PUT应该始终接受GET先前返回的内容

时间:2017-03-29 15:36:22

标签: rest

让我们考虑一下我们的PUT端点对数据内容进行一些数据验证。然后,是这种情况(伪代码):

  • data = GET
  • 发生短延迟,没有更新服务器端
  • PUT data

=>总是产生200 / 2xx?或者PUT端点(4xx?)

是否可能认为数据无效

换句话说:服务是否允许客户端读取(GET)在更新(PUT)时发送时本身被标记为无效的资源表示(关于数据验证)?

更新:注意:这不是媒体类型,而是实际数据验证。

1 个答案:

答案 0 :(得分:0)

当您执行GET请求时,您要求提供资源的代表性。当您执行PUT请求时,您要求将目标资源替换为提交的代表中的目标资源。

因此,如果两种表示都使用相同的媒体类型,则服务器应该接受它,但是PUT的一种媒体类型和{{1}的另一种媒体类型完全可能}。

  

服务器是否允许客户端读取(GET)可能的资源   在更新(PUT)上发送时,它本身被标记为无效?

这由GET标题决定。例如,如果服务器允许客户端在使用Content-Type执行GET请求时获取格式相当的HTML文档,但客户端必须使用Accept: text/html表示更新该资源。