gpt4 book ai didi

rest - 如何处理 REST API 中的大量资源

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

我正在将 REST 接口(interface)连接到现有应用程序,我很好奇最合适的解决方案是处理那些如果要检索它们会返回大量数据的资源。

该应用程序是一个现有的时间表系统,其中一个资源是一组用户的“时间段”。
这些资源的示例 URI 是:

/users/44/timeslots/

我已经阅读了很多与如何为此资源提供过滤以检索子集相关的问题,并且我已经有了解决方案。

我想知道我应该如何(或是否)处理在上面的 URI 上发出 GET 会从数万或数十万行返回兆字节数据并且需要相当数量的服务器资源来实际响应的情况第一名。
  • 在这些情况下,是否存在按惯例使用的 HTTP 响应?
    我发现 HTTP 代码 413 与太大的请求实体相关,但不适用于响应实体太大
  • 是否有替代约定来限制响应或告诉客户这是一个愚蠢的请求?
  • 我应该简单地让服务器满足这个庞大的请求吗?

  • 编辑:需要明确的是,我已经实现了资源的过滤和拆分,并考虑了对其他大型集合资源的分页。我想对没有意义的请求做出适当的响应(显然是由构建 URI 的客户端请求的)。

    最佳答案

    您可以自由设计您的 URI,因为您想对任何 进行编码。概念 .

    因此,根据您的用户(人/机器),您可以根据您的问题空间或领域将其用作概念级别的拆分。正如你提到的,你可能有这样的事情:

    /users/44/timeslots/afternoon
    /users/44/timeslots/offshift
    /users/44/timeslots/hours/1
    /users/44/timeslots/hours/1
    /users/44/timeslots/UTC1624

    一旦也可以通过上述想法/概念来限制。您可以通过添加查询/users/44/timeslots?day=weekdays&dow=mon 来过滤更多

    像这样使用或概念和过滤器自然会限制响应大小。但是您需要尝试设计您的 API 不要陷入那种情况 .如果您的客户行为不端,请给它一个 400 Bad Request。如果您的服务器端出现问题,请使用 5XX 代码。

    利用 REST 工具之一 - 超媒体和链接 (另见 HATEOAS )链接到您的超媒体的下一部分,利用您的领域理解的“ block 状概念”(页面,时间段)。也无需下载兆字节 不适合缓存 这会影响可扩展性/速度。

    关于rest - 如何处理 REST API 中的大量资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5438386/

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