前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >外部接口如何统一api地址?

外部接口如何统一api地址?

作者头像
后端码匠
发布2020-04-26 13:45:58
1.5K0
发布2020-04-26 13:45:58
举报
文章被收录于专栏:后端码匠后端码匠后端码匠

常见的做法有 1.使用if或case语句判断参数值; 优点:简单、易理解 缺点:接口多时,if或case分支太多,代码丑陋 2.动态代理 这点怎么解析参数,调用函数我也不是很清楚。 3.spring是否有实现此类功能?

Spring能否实现此类功能?

为什么不看文档呢?Spring MVC文档里归类说明的很清楚了。只需要看Request Mapping这一节:https://docs.spring.io/spring/docs/5.2.5.RELEASE/spring-framework-reference/web.html#mvc-ann-requestmapping 要求API共用一个URL,参数不同调用不同的方法,对吧?

前端请求服务器端API,参数包括这么几种形式:

  • HTTP Method(GET、POST、PUT、DELETE...)
  • Path Variable(URL路径中的变量)
  • Request Parameter(问号后面,最常见的传参方式。这种方式就完全能满足当前的问题。)
  • Header里的参数
  • Consumable Media Types(请求体是JSON还是XML)
  • 权限(登录没登录,登录之后是什么角色,访问不同的接口)。严格说这不算参数,而是服务器端进一步判断得出用户角色的。

都可以认为是参数。只有Path Variable可能会改变URL路径,所以下面介绍其他5种形式。

1,同一个URL,不同HTTP Method

都是/persons这个URL,分别调用了getPerson和add方法。

2,同一个URL,不同Request Parameter

都是/pets这个URL,/pets?type=cat和/pets?type=dog分别调用不同的方法。

3,同一个URL,Header中参数不同

都是/pets这个URL,/pets?type=cat和/pets?type=dog分别调用不同的方法。

4,同一个URL,不同Consumable Media Types

都是/pets这个URL,请求的数据格式不同,分别调用不同的方法。

5,同一个URL,权限不同

都是/persons这个URL,Admin和User分别调用不同的方法。Admin可以获取所有数据,User只能获取自己有权限的数据。 上面的这些Annotation可以自由组合。有些也是Class级别的,就是可以放在Controller类上做注解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后端码匠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring能否实现此类功能?
  • 前端请求服务器端API,参数包括这么几种形式:
  • 1,同一个URL,不同HTTP Method
  • 2,同一个URL,不同Request Parameter
  • 3,同一个URL,Header中参数不同
  • 4,同一个URL,不同Consumable Media Types
  • 5,同一个URL,权限不同
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档