当资源处于无法更新的状态时,从 REST API PUT/PATCH 方法返回哪个 HTTP 状态代码更合适?



假设您的资源处于"已完成"状态,并且任何人都不允许更新它(全部或部分(,那么在有人试图更新它时,返回的正确HTTP状态码是什么?400403409还是别的什么?

405不允许的方法是一种有趣的可能性

405(Method Not Allowed(状态代码表示在请求行中接收到的方法是源服务器已知的,但目标资源不支持。源服务器必须在405响应中生成一个Allow头字段,该响应包含目标资源当前支持的方法的列表。

"当前支持的方法";意味着资源的允许方法集可以随着时间的推移而发展。因此,我认为,对于处于不支持PUT/PATCH状态的资源,此代码是令人满意的。

403 Forbidden也是一个令人满意的选择。

403(禁止(状态代码表示服务器理解请求但拒绝授权。

最新更新