【发布时间】:2026-02-02 17:55:01
【问题描述】:
我的服务器中有一个 REST API,其中 List 操作(应该使用 GET 方法实现)从客户端接收多个参数:
- 当前页面
- 行数
- 用于执行快速搜索的文本
- 为搜索定义复杂过滤器的对象(“字段操作值”形式的规则集)
由于过滤搜索的对象很复杂,我需要将列表定义为 POST,我认为这不是一个好主意,因为 REST 将列表操作定义为 GET。
我的问题很简单:有什么方法可以使用 GET 方法解决这个问题,避免使用带有参数的巨大 URL 来调用它?
【问题讨论】:
-
如何根据 URL 参数大小定义 huge,这有点令人担忧。看看*.com/a/417184/3126973。因此,我认为您的 complex object 不能作为 GET 参数通过 URL 传递。
-
看看这个帖子link。 TLDR:虽然您可以发送带有 GET 请求的正文,但不建议这样做,也没有在规范中定义。
-
如果我是你,我会在请求正文中发送该对象,但我会选择另一种幂等 HTTP 方法以尊重 GET 方法的幂等性质(PUT 怎么样?) .
标签: javascript java spring rest api