API版本兼容方案

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/2309272

 

      最近app服务端研发需要做版本兼容功能,特记录一下解决实现过程,以便后期参考。

      一、兼容原则

      区分app请求版本,保证不同版本的app访问api时均可用;同时版本路由控制与业务逻辑解耦,实现Router与action层的分离,保障应用扩展性和可维护性。

      二、现有路由分析

      目前项目框架原因,uri的结构如下:/appName/module/action,举例:/demo/api/getuserlist,目前api文件相当于路由map,控制不同接口对应具体action。版本兼容确定在module层做文章,那不改动层级结构的话,修改uri如下:/demo/apiv1/getuserlist || /demo/apiv2/getuserlist || /demo/apiv3/getuserlist,即api-》apiv1/2/3。

      三、Nginx重写路由

      美化uri实现,达到如下目的:

      /demo/apiv1/getuserlist    --》  /demo/api/v1/getuserlist

      /demo/apiv2/getuserlist    --》  /demo/api/v2/getuserlist

      /demo/apiv3/getuserlist    --》  /demo/api/v3/getuserlist

       Nginx中定义路由重定向,conf文件中添加如下语句:

rewrite ^\/demo\/api\/(v\d+)\/([^\?]*)$ /demo/index.php/api$1/$2 break;

     四、验证测试

      app发起请求 --》根据Nginx路由重写规则,重定向 --》定位到目标action。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值