java - @RestController 中的动态 @RequestParam

标签 java spring rest spring-restcontroller http-request-parameters

我有一个 Controller :

@RestController
@RequestMapping(value = UserRestController.REST_URL, produces = 
MediaType.APPLICATION_JSON_VALUE)
public class UserRestController {

static final String REST_URL = "/customers";

@GetMapping
public List<User> getAll() {
    return service.getAll();
  }
}

它成功处理此类请求,如:

GET:    /customers/

我想通过一些参数来获取用户。例如,电子邮件:

GET:   /customers?email=someemail@gmail.

我尝试过:

@GetMapping("/")
public User getByEmail(@RequestParam(value = "email") String email) {
    return super.getByEmail(email);
}

预计我会收到一个异常,因为“/”已经映射到 getAll 类上。 有什么办法可以解决这个问题吗?

最佳答案

@GetMapping
public Object get((@RequestParam(value = "email", required = false) String email) {
    if (email != null && !email.isEmpty()) { 
     return super.getByEmail(email);
    } else {
      return service.getAll();
    }  
}

关于java - @RestController 中的动态 @RequestParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60300457/

相关文章:

java - 如何在android中持续检查文本更改事件?

java - Jetty 9 FontAwesome 空图标

php - Slim - 从浏览器调用端点工作正常,而从 PHPUnit 测试调用端点返回 404

java - 无法弄清楚如何显示对象数组Java

当获取 mediaPlayer.getCurrentPosition 和 SeekBar 在暂停时进入初始状态时出现 java.lang.illegalStateException

java - Spring @Value - 有没有办法分配默认的空 map ?

java - Spring MVC 新手

Java spring 框架 - 如何设置内容类型?

json - 带有接受 header application/json 的 REST API 返回一个数字

api - REST:处理计算的和相关的资源属性