为了账号安全,请及时绑定邮箱和手机立即绑定

springmvc使用@requestMapping与用参数指定方法名转发的优缺点?

springmvc使用@requestMapping与用参数指定方法名转发的优缺点?

函数式编程 2019-05-13 11:07:08
1.问题:在对接一些平台的时候,发现接口调用方式不同了,这样子做是有什么好处么?举个例子:某平台的v1版本是一个接口一个路径的方式:(@RequestMapping的形式)如:查询用户信息接口是这样的,http://xxxxx.com/v1/getUserInfo查询用户余额接口是这样的,http://xxxxx.com/v1/getUserBanlancev2版本变成传参code来决定调用方法:如:查询用户信息接口是这样的,http://xxxxx.com/v2/commonRequest?code=getUserInfo查询用户余额接口是这样的,http://xxxxx.com/v2/commonRequest?code=getUserBanlance2.求助冒昧说下我自己的观点,v2版本这种方式需要获取到code参数,并且使用反射的方式去调用对应方法,效率岂不是更加低一些,这么设计的优点在哪里呢?希望能得到大家的帮助。
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

其实我觉得实现中是否使用了反射或者任何细节技术不是判定一个API设计优劣的先决条件,如题主描述的场景,用V1还是V2其实取决于对两个业务耦合内聚的理解。V2对用户来说,查询用户信息和查询余额就是同一接口,通过传入不同的参数来获得不同的数据。我个人倒觉得V1更符合RestFulAPI的设计理念,也是结合这两个接口其实不太相同,至少返回上一个是用户信息,一个是余额,语义差别较大。至于实现上,第一种其实同样也可以通过反射实现。同样,第二种也可以不通过反射。总之,API的设计不看后端实现,只看最后出来的URL长什么样子,综合来和RestFull是个不错的规范,建议参考。至于实现上,当你发现有一些无聊代码时,可能可以使用反射来消除这种无聊代码,但从我个人来说,不觉得反射用在这个地方用得好,我们其实更应该关注业务代码中真正需要重构的地方。
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 1208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信