首页新闻找找看学习计划

WebApi版本管理,后台逻辑架构的设计问题

0
悬赏园豆:100 [已解决问题] 解决于 2017-02-27 23:37

最近在做一个App的接口,如果Api实时更新的话肯定会影响那些还没有更新App的用户

现在想通过uri加版本号来区分,例如:/Api/v1.1/Account

下来怎么避免把所有的Controller和逻辑都复制一份放到对应的“V1.1”文件夹中呢?

不想重复的代码太多,又想版本控制,对我这种不太懂设计模式的来说有点难,求大神指点!

txtName的主页 txtName | 初学一级 | 园豆:7
提问于:2016-04-19 15:44
< >
分享
最佳答案
0

赏分!

收获园豆:60
Cat Qi | 小虾三级 |园豆:761 | 2016-04-21 23:32
其他回答(2)
0

看看这篇文章吧,复制并不是明智的方法

http://blog.csdn.net/hengyunabc/article/details/20506345

收获园豆:20
Rich.T | 园豆:3438 (老鸟四级) | 2016-04-19 16:59

这个帖子我看过了,已经确定了用URI区分版本了

现在就是想后台逻辑实现的部分,例如BLL和DAL之类的,怎么最大程度避免重复的代码

不行的话每个版本都复制一份好了 - -||

支持(0) 反对(0) txtName | 园豆:7 (初学一级) | 2016-04-19 17:04

@txtName: 只要有版本变动的地方都起一个新的方法或类

支持(0) 反对(0) Rich.T | 园豆:3438 (老鸟四级) | 2016-04-19 17:08

@Rich.T: 哦,没变动的就还用之前的,有变动了就放在对应版本的文件夹里吗?

这样好像也不错

支持(0) 反对(0) txtName | 园豆:7 (初学一级) | 2016-04-19 17:09

@txtName: 继承重写

支持(0) 反对(0) Rich.T | 园豆:3438 (老鸟四级) | 2016-04-19 17:13
0

1. 版本号可以在HTTP Header里面隐藏.

2. 业务逻辑的实现发生了改变, 不能破坏原有向前兼容的API, 最好还是CTRL+C 然后重命名 - - (你懂得)

 

收获园豆:20
cn.stonexy | 园豆:312 (菜鸟二级) | 2016-04-20 17:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册