如何解决GET API 中无效数据与不存在数据的响应
以下是我正在开发的 API 的签名。
GET https://basedomain.com/api/v1/order/{orderid}/items=filter[name]={name}
我对什么时候应该返回 http 状态感到困惑
1. orderid <= 0 (order id is not expected to be <= 0 in the database as it is auto-generated)
2. orderid which does not exist in the database
我更喜欢为上述两种情况返回 404 - Not Found
,因为在这两种情况下,orderid
都不存在于具有以下逻辑的数据库中。
if (orderid <= 0 OR orderid not found in the database)
return 404 - Not Found
// I would want to avoid to query database if the orderid <= 0
我更喜欢上面的原因是这里的输入值 orderid
没有用于在后端进行任何更改,因为它通常在 post/put API 中完成。 orderid
是一个 resourceid
,它可以存在也可以不存在,并且应该基于此返回响应。响应不应指示后端存储此值的约束。
与此同时,其他开发者也有以下看法。
if (orderid <= 0)
return 400 - Bad Request
else if (order id does not exist in the database)
return 404 - Not Found
我在互联网上寻找了这个指南,但我能找到的只是关于 post/put 请求的输入验证。
我有兴趣了解针对此类用例的建议和/或最佳实践,以便我能够以正确的方式设计 API。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。