Rest 尝试更改不可变对象时出现HTTP错误代码?

Rest 尝试更改不可变对象时出现HTTP错误代码?,rest,http,error-handling,Rest,Http,Error Handling,我有一个测验,我可以通过restful API回答一个问题。该请求将通过PUT请求将问题的答案传输到URL,如“/question/{id}/answer”。但每个问题只能回答一次。答案可以通过get请求查询,但不能再次更改。当客户端试图用PUT请求更改不可变答案时,我返回什么HTTP错误代码 我尝试了以下错误代码: 405方法不允许:但首先,PUT是可以的。但一旦对象被设置,就不再允许PUT。如果允许的方法列表随时间变化,是否可以 409冲突:可以工作,但RfC说“他的代码只允许在预期用户可

我有一个测验,我可以通过restful API回答一个问题。该请求将通过PUT请求将问题的答案传输到URL,如“/question/{id}/answer”。但每个问题只能回答一次。答案可以通过get请求查询,但不能再次更改。当客户端试图用PUT请求更改不可变答案时,我返回什么HTTP错误代码

我尝试了以下错误代码:

  • 405方法不允许:但首先,PUT是可以的。但一旦对象被设置,就不再允许PUT。如果允许的方法列表随时间变化,是否可以
  • 409冲突:可以工作,但RfC说“他的代码只允许在预期用户可能能够解决冲突并重新提交请求的情况下使用。”在这里,客户端将无法解决冲突
  • 400错误请求:通常是错误请求,但不是“由于语法错误”
  • 那么,这是服务器错误(5xx)吗?如果出现500内部服务器错误,RfC会声明“服务器遇到意外情况”。但是我们期望对象在某个时刻变得不可变
如果允许的方法列表随时间变化,是否可以

405响应中的Allow header字段,其中包含目标资源当前支持的方法的列表。-

注意:当前支持的方法