加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:44:43 所属栏目:大数据 来源:网络整理
导读:当请求参数互斥时,在@Controller方法上设计API的更好方法是什么? 假设有一个API来提供与请求参数匹配的用户列表. 代码是: public ResponseEntity getList(@RequestParam(required = false) Integer userId,@RequestParam(required = false) User.Type user

当请求参数互斥时,在@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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读