我目前正在为包含以下内容的软件系统开发最后一批更改(希望如此):
我想知道第2版的最佳方式是什么,这样我就可以让它的API与#3保持同步,也就是说,我希望iOS客户端的v1.0只能调用Azure的v1.0。当我升级到Azure API的v2.0 (试图保留相同的API方法名)时,我希望iOS客户端的v1.0仍然访问iOS客户端的APIv1.0和v2.0以访问APIv2.0。
从逻辑上讲,似乎可以将v1.0复制到新的v2.0MobileApp中。这样做的优点是保持所有内容都是独立的,并且不需要更改API方法名,这只是Azure SDK客户端的基本URL。但这显然是站不住脚的,特别是当你需要服务一个高客户负载。这可能会导致一些相当高的指控。
我已经将我的API文件子文件夹,这似乎对我需要调用它们的方式没有任何影响。如果我有一个ReallyCoolMethod.js文件,那么它在哪里似乎并不重要,只要它是根目录中api文件夹的后代。我想避免发生这样的事情:
ReallyCoolMethod.jsReallyCoolMethod_v2.js但这是最好的办法吗?有办法做下面的事吗?
- root
|-- api
|-- v1
| |-- ReallyCoolMethod.js
|
|-- v2
|-- ReallyCoolMethod.js如果是这样,我如何将调用从InvokeAPI路由到正确的版本?
注意:,我是,而不是,询问Azure移动服务和Azure移动应用程序之间的区别。我知道这里涉及到一些版本控制问题,但这与我的问题无关。我的问题是关于一个单一的Azure和在这个应用程序容器中的不同版本的,我的 API。
发布于 2017-05-19 21:11:21
REST的常见做法是将版本包含在URI中,例如https://host/api/v1.0/users/123。也许你可以遵循同样的惯例?后端将根据uri路由到正确的代码版本。
https://stackoverflow.com/questions/44070314
复制相似问题