【问题标题】:Multi version Api Architecture多版本 API 架构
【发布时间】:2016-07-19 07:10:48
【问题描述】:
我设计了一个多版本的 API 架构,
请给我关于好的和坏的反馈和建议,或者有更好的方法来实现这一点。
- 版本服务器 (MVC4) 将请求路由到正确的 API 接口 (WebApi)。
- 版本将通过标头发送到服务器,如果未找到标头,则默认为 1.0。
我第一次设计多版本API架构,谷歌没有太多这方面的信息。
欢迎任何建议、批评、反馈和任何东西。
干杯,
【问题讨论】:
标签:
asp.net-mvc-4
design-patterns
architecture
versioning
【解决方案1】:
这取决于您将维护多少个版本以及旧版本的 NFR 是什么。
您当前的设置仅适用于少数几个专业版和非专业版:
+ 所有版本都可以使用相同的 NFR
+ 一开始就快速实现
- 对公共资源(如数据库)的更改会影响所有受支持的版本,因此必须重新发布、测试它们……这可能会变得非常昂贵
另一种选择是构建从 2.2 到 1.0 以及从 3.7 到 2.2 的适配器链:
+ 更容易维护大量版本
+ 更改只需要链中一个新的/更新的适配器
- 一开始很难设置
- 每个正在使用的适配器的性能下降
对于适配器链,有几种可能的情况,将它们全部放在一个进程中或为每个进程提供单独的服务。同样,两者都有优点和缺点。
像往常一样,这完全取决于您的情况。