为了映射 GET 请求,我使用注释@GetMapping:
@GetMapping(params = {ParameterName.SORT_BY})
public List<GiftCertificate> findAllSorted(@RequestParam(value = ParameterName.SORT_BY) Set<ColumnName> columnNames) {
return service.findAllSorted(columnNames);
}
ParameterName.SORT_BY是一个常规枚举。
根据要求:
http://localhost:8080/gift-certificates?sort_by=name
我进入这个方法,一切都很好。但是,为什么在指定映射中不存在的参数时,应请求:
http://localhost:8080/gift-certificates?sort_ABRAKADABRA_by=name
我进入这个方法:
@GetMapping
public List<GiftCertificate> findAll() {
return service.findAll();
}
为什么以及如何检查 GET 请求参数?
PS这是小号不敢出现在评论里乱戳关题原因的关卡,因为没有合适的。这就是屁应该被轰炸的方式:)
如果只是检查参数
我想到的第一件事是检查请求是否有可能的参数,如下所示:
带有可选参数的变体
在您的情况下,另一种解决方案建议自己 - 使用所有可能的参数创建一个端点并处理它们的存在或不存在。小例子:
阅读链接:https ://www.baeldung.com/spring-request-param