【发布时间】:2021-03-07 01:23:01
【问题描述】:
我的 Spring REST 控制器中有 GET 方法。此方法通过过滤器返回用户列表。 我有几种方法来实现它:
- 添加
@PathVariablelike -/users/{type}/{age}/{name}/...(在这种情况下是不好的方法) - 添加
@RequestParamlike -/users?type=type,age=age,name=name...(本例中的常用方法) - 像这样使用 RequestDto(最好的方法)
public class UsersRequestDto {
private String type;
private int age;
private String name;
...
}
但我不能为此使用 GET 方法。我必须使用 POST 方法和@RequestBody
而且它违反了规则。我的方法不会改变状态,也不会创建任何实体。它作为 GET 方法工作,但实际上是 POST。
我有两种方法:
- 使用带有许多参数的 GET 方法
- 将 POST 方法与 DTO 一起使用,该方法用作 GET 方法并让用户感到困惑。
哪种方式更好?
【问题讨论】:
标签: spring spring-boot rest http spring-restcontroller