Spring GetMapping 仅通过 @RequestParam 来区分

问题描述 投票:0回答:2

我将对象用户定义为:

@Entity
public class User {
  private String name;
}

在我的控制器中,我想要映射以按名称查询用户并查询所有用户。我想做这样的事情:

@GetMapping("/users")
public User getUsers() {...}
@GetMapping("/users")
public User getUserByName(@RequestParam String name) {...}

制作:

  • API/用户
  • api/用户?名称=myName

错误是: {GET /api/users}:已经有“userController”bean 方法...映射

在 Spring 中是否有可能仅通过查询参数(@RequestParam)来区分 GET URL 映射?

Edit_1:我想避免为每个不同的 getBy 变体创建端点。所以我希望所有不同的 getBy 都只有一个 getBy URI(用于姓名、用户名、电子邮件、地址...)

java spring spring-boot spring-mvc spring-data-jpa
2个回答
0
投票

如果你使用

params
元素,我想你可以做到。
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/GetMapping.html

@GetMapping("/users")
public User getUsers() {...}

@GetMapping(value = "/users", params = "name")
public User getUserByName(@RequestParam String name) {...}

-1
投票

@GetMapping("/users") public User getUserByName(User user) {...}

© www.soinside.com 2019 - 2024. All rights reserved.