Web API应该返回403禁止还是根本没有端点?

问题描述 投票:0回答:1

我有一个Web API,对于一个模型,我只允许通过id [GET] api/models/{modelId}获取或更新[PUT] api/models/{modelId}。 API不支持POSTDELETE或获取集合([GET] api/models)。

[仍应在Controller中使用这些方法并返回Forbid() 403状态吗?

还是我应该简单地删除这些方法?

c# asp.net-core asp.net-web-api url-routing asp.net-core-webapi
1个回答
0
投票

HTTP response status codes的完整列表可以帮助您确定最适当的响应。

403 Forbidden不适合您描述的情况:

客户端无权访问内容;也就是说,它是未经授权的,因此服务器拒绝提供所请求的资源。与401不同,服务器知道客户端的身份。

另一方面,405 Method Not Allowed似乎适合这种情况:

该请求方法是服务器已知的,但已被禁用,无法使用。例如,API可能禁止删除资源。必须永远禁用GETHEAD这两个强制方法,并且不应返回此错误代码。

Note

服务器必须在405响应中生成允许标头字段,其中包含目标资源当前支持的方法的列表。

© www.soinside.com 2019 - 2024. All rights reserved.