微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GET API 中无效数据与不存在数据的响应

如何解决GET API 中无效数据与不存在数据的响应

以下是我正在开发的 API 的签名。

GET https://basedomain.com/api/v1/order/{orderid}/items=filter[name]={name}

此处的 orderid 值将是自动生成数据库表的主键值。

我对什么时候应该返回 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 举报,一经查实,本站将立刻删除。