gpt4 book ai didi

rest - 如果 RESTful Web API 默认 GET 会返回太多结果怎么办?

转载 作者:行者123 更新时间:2023-12-04 20:45:13 25 4
gpt4 key购买 nike

环境:ASP.NET MVC 4 Web API

鉴于 GET 的 RESTful 标准是:
http://www.example.com/api/entity/返回所有实体的集合http://www.example.com/api/entity/{id}返回 ID 为 {id} 的实体

...如果有这么多“实体”,第一次调用会返回大量的结果数据,该怎么办?

我可以完全禁止该调用并返回 HTTP 500 或其他内容,但我宁愿遵守标准并实现某种范围选项,尽管它可能是任意的。

我一直在寻找 HTTP header ,这些 header 允许等同于分页的内容并遇到了 Accept-Ranges ,但找不到适用的示例(如果这甚至是正确的开始)。我在正确的轨道上吗?有没有可能有帮助的资源?

最佳答案

Accept-Ranges回复 header ,因此这无助于您将分页请求从客户端发送到服务器。该规范允许您为此 header 返回任何值(尽管唯一的标准化值是 bytes ),因此您可以使用 Accept-Ranges作为您的服务器通知客户端您的 API 支持分页的一种方式,但 TBH 可能没有那么有用。

配套请求 标题是 Range .此 header 的值是 ranges-specifier ,但不幸的是,根据规范,唯一有效的值是 byte-ranges-specifierThe first 500 bytes (byte offsets 0-499, inclusive): bytes=0-499这对我们想要的类型分页没有用。

由于没有标准,您只需编写自己的请求 header 或查询参数以进行分页。这是我们为我正在开发的 RESTful API 所做的:
GET /users/?offset=10&limit=50

{
"users": [...],
"offset": 10,
"limit": 50,
"total": 10000
}

关于rest - 如果 RESTful Web API 默认 GET 会返回太多结果怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18996505/

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