gpt4 book ai didi

具有部分结果的批量查询的 REST 状态代码

转载 作者:可可西里 更新时间:2023-11-01 17:17:35 25 4
gpt4 key购买 nike

我正在创建一个 REST API,客户端可以在其中查询特定 ID 的数据。示例查询如下所示:

/api/data?ids=1&ids=2&ids=3&start=2019-01-01&end=2019-02-12

这遵循用于传递数组的 Open API 规范:https://swagger.io/docs/specification/describing-parameters/#query-parameters

假设现在存在ids 2和3,分别返回1条记录和0条记录。还假设 id 1 不存在。

应该返回给客户什么?我倾向于返回带有字典的 OK 200,其中 id 3 将作为键存在但不包含数据,而 id 1 根本不存在。

像这样:

{
{
id=2,
records=[154334, 324343]
},
{
id=3,
records=[]
}
}

然后客户端将不得不推断 id 1 是无效的。当尝试发出查询以检索 id 1 上的元数据时:

/api/entity/1

然后我会返回 404 Not Found。

一般来说,我想找到好的解决方案来处理对查询给出部分匹配的 REST API 请求的响应和状态代码。

最佳答案

由于还有其他字段具有有效数据,因此发送 200 将是正确的响应。推断数据不存在将是客户(被调用者?)的责任。

这里要注意:发件人的请求是正确的。而且您还拥有根据发送的过滤器的数据。

来自服务器的视角

这是一个类型的函数

GetData(
(name="id")List<int> ids,
(name="start") DateTime startDate,
(name="end") DateTime endDate){
// your logic goes here
}
  • 发件人根据契约(Contract)发送了请求。 (因此不是 400)
  • 作为服务器,您确实有有效数据可以通过设置的过滤器进行响应(因此不是 404)
  • 大概是设置了身份验证(因此不是 401)
  • 您正在完全处理请求(因此不是 202)
  • 您没有创建任何东西(因此不是 201)。

关于具有部分结果的批量查询的 REST 状态代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54646121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com