【发布时间】:2018-12-20 14:27:22
【问题描述】:
我有两个 GET 请求
@GetMapping
public List<Limit> getAllLimits(@RequestParam() Map<String, String> limitFilters) throws ApiException {
if(CollectionUtils.isEmpty(limitFilters)) {
return limitService.getAllLimits();
}
else {
return limitService.getLimitBySearchFilters(limitFilters);
}
}
@GetMapping(params = { "id", "asOfDate" })
public Limit getLimitByid(@RequestParam Long id, @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @RequestParam(value = "asOfDate", required = false) LocalDate asOfDate) throws EntityNotFoundException, ApiException {
return limitService.getLimitById(id, asOfDate);
}
@GetMapping({"/{pid}"})
public Limit getLimitByPid(@PathVariable Long pid) throws EntityNotFoundException, ApiException {
return limitService.getLimitByPid(pid);
}
- http://localhost:8080/limit url 转到 getAllLimits(@RequestParam() Map limitFilters) - 这是正确的
- http://localhost:8080/limit/1 转到 getLimitByPid() - 这是正确的
- http://localhost:8080/limit?id=1&asOfDate=2018-07-12 转到 getLimitByid - 这是正确的
但是,请注意asOfDate 是可选的
所以,http://localhost:8080/limit?id=1 转到 getAllLimits(@RequestParam() Map<String, String> limitFilters) 而我希望它路由到 getLimitByid() 方法
我怎样才能做到这一点?任何帮助将不胜感激
【问题讨论】:
标签: java spring-mvc spring-boot microservices restful-url