`

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。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics