我有一个Web API,对于一个模型,我只允许通过id [GET] api/models/{modelId}
获取或更新[PUT] api/models/{modelId}
。 API不支持POST
,DELETE
或获取集合([GET] api/models
)。
[仍应在Controller
中使用这些方法并返回Forbid()
403状态吗?
还是我应该简单地删除这些方法?
HTTP response status codes的完整列表可以帮助您确定最适当的响应。
403 Forbidden
不适合您描述的情况:
客户端无权访问内容;也就是说,它是未经授权的,因此服务器拒绝提供所请求的资源。与401不同,服务器知道客户端的身份。
另一方面,405 Method Not Allowed
似乎适合这种情况:
该请求方法是服务器已知的,但已被禁用,无法使用。例如,API可能禁止删除资源。必须永远禁用
GET
和HEAD
这两个强制方法,并且不应返回此错误代码。
Note:
服务器必须在405响应中生成允许标头字段,其中包含目标资源当前支持的方法的列表。