gpt4 book ai didi

rest - 带有许多参数的 "long"GET 请求

转载 作者:行者123 更新时间:2023-12-01 03:28:58 26 4
gpt4 key购买 nike

我正在实现一个 Restful API 接口(interface),并且想知道一些限制和最佳实践。

我有一个 GET 请求,它从数据库表中检索一系列条目。

但是我的问题是,我允许我的调用者传入一组相当复杂的标准来过滤掉他们想要的东西。

我的情况是:

  • 序列化为查询字符串后,我的查询字符串远远超过了 GET 请求的限制。
  • 我想维护一个 RESTful API,因为我正在检索记录,所以我似乎应该使用 GET 请求。

  • 如果我不想违反 RESTful API,但想实现传递长查询参数字符串的目标,解决此问题的最佳实践是什么?

    欢迎任何建议。谢谢!

    最佳答案

    一种解决方案是在前端而不是后端进行过滤。因此,您通过 GET 请求获取所有记录,但仅向用户显示过滤后的记录。 (当然你没有得到用户无权查看的记录,你在服务器端过滤它们)

    好处:

  • 纯 REST 解决方案,您无需发送 POST 请求来获取某些东西
  • 您在开始时提出 1 个请求,当用户尝试不同的过滤器时,不需要额外的请求

  • 缺点:
  • 如果数据集太大,请求可能会消耗大量的网络资源。但这将是 1 次请求,因为额外的过滤不需要新的请求。此外,对响应进行 gzip 压缩会显着减小 JSON 响应的大小,因此您可以通过几百 KB 发送包含数千条记录的 JSON 响应。
  • 如果数据集太大,过滤操作可能会在浏览器中花费很长时间并暂时卡住。

  • 因此,此解决方案高度依赖于您的用例,但它是解决方案之一。也许混合方法可能有用,例如在服务器端进行一些主要过滤,在客户端进行其余过滤。

    关于rest - 带有许多参数的 "long"GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39354170/

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