REST HTTP响应状态代码表示客户端输入未验证



我们有POST API,可以为特定用户的联系方式提供响应。但是,由于这是机密数据,要访问此详细信息,任何访问它都需要放置经过验证的手机号码的人。

请求看起来像:

POST /api/userdetails
{
   "userid": 123,
   "mobile": "+1394839843"
}

如果"移动"号码不是我们数据库中的验证号码,则该状态代码应该是什么?

如果"移动"应该是状态代码。数字不是我们数据库中的验证号码吗?

从很高的级别上:考虑一下用户提交了"未经验证的号码"的表格,请考虑您期望一个普通的旧网站做什么。然后做。

迈克尔·克罗帕特(Michael Kropat)停止的图表使过程很难陷入更具体的问题。

请求有问题吗?显然是在这里,所以我们立即知道您要使用4xx类中的一些代码。

从那里,这只是查看每个代码语义的问题,并查看哪一个最适合。

400不良请求是通用客户端错误,因此,如果找不到更好的匹配,则使用该请求。

403禁止的是"我理解您的要求,但拒绝采取行动。"这最常见于身份验证和ACL,但标准实际上并不需要。考虑到您的描述,这不是一个不好的匹配。

422来自WebDav的实体是另一种可能性。我拒绝它,理由是消息主体的架构是完全正确的,问题在于指定的值与服务器的当前状态不符。您可能想查看先前关于400 vs 422

的讨论

最新更新