java – 为互斥请求参数设计API的更好方法是什么?

前端之家收集整理的这篇文章主要介绍了java – 为互斥请求参数设计API的更好方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

当请求参数互斥时,在@Controller方法上设计API的更好方法是什么?

假设有一个API来提供与请求参数匹配的用户列表.

代码是:

public ResponseEntity getList(@RequestParam(required = false) Integer userId,@RequestParam(required = false) User.Type userType,@RequestParam(required = false) Integer age) {
        List

这是重点:

用户无法使用多个请求参数进行查询.只有一个请求参数或没有请求参数有效(请求中只应存在userId,age或type中的一个).

我不确定为这种情况设计API的更好方法是什么.你能给我一些建议吗?

最佳答案
我喜欢这些家伙在评论中建议的方法

@RequestMapping(value = "...",params = {"!userType","!userAge"})
public ResponseEntity

在您开始管理每个端点的限制之前,它看起来健壮且可行.它看起来很乏味,很难维护.此外,我不确定没有参数的终点会如何反应.是否会被其他方法调用或遮蔽?

我建议引入条件 – 每个端点的要求,而不是写限制.它可以是Map< String,Function< String,List< User>>>在下一格式中:

我还建议你将所有传入的请求参数收集到一个Map< String,String>按大小验证它.

public class Controller {

    private Map
原文链接:https://www.f2er.com/spring/431401.html

猜你在找的Spring相关文章