对于部分结果批量查询REST状态码

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

我创建一个REST API,客户端可以查询某些IDS数据。示例查询是这样的:

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

这遵循开放API规范用于使一个阵列:https://swagger.io/docs/specification/describing-parameters/#query-parameters

假设现在IDS 2,3存在,分别返回1个记录和0记录。假设也是ID 1不存在。

什么应该被返回给客户端?我倾向于用字典其中id 3将出席作为重点,但不包含任何数据返回的行200,而1号将不存在的。

事情是这样的:

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

然后,客户将不得不推断ID 1无效。并试图发出一个查询时,对ID 1检索元数据:

/api/entity/1

然后我将返回404未找到。

在一般情况下,我想找到处理响应和状态代码休息在查询给出了部分匹配的API请求良好的解决方案。

rest http http-status-codes openapi
1个回答
1
投票

由于还有其他领域具有有效数据,发送200将是正确的响应。推断数据不存在将客户端(被叫方的?)的责任。

这里要注意的:发件人的要求是正确的。你也有数据为每发送过滤器。

从服务器的POV

这是类型的函数

GetData(
(name="id")List<int> ids, 
(name="start") DateTime startDate, 
(name="end") DateTime endDate){
           // your logic goes here
}
  • 发件人发送的请求按合同执行。 (因此不400)
  • 你作为一个服务器都具有有效的数据与设置过滤与回应(因此不能404)
  • 想必AUTH是设置(因此,并不是401)
  • 你完全处理请求(因此不202)
  • 您还没有创建任何东西(因此不能201)。
© www.soinside.com 2019 - 2024. All rights reserved.