我正在使用python(3.x)和bottle实现一个简单的Web应用程序.由于我想要公开的API将来可能会发生变化,我想添加不同版本的可能性.
关于这个话题有一些有见地的答案在这里,但除非版本的Web API的是一个成熟的坏主意想我给它一个尝试反正.
关于我的应用程序:例如,虽然版本1.0允许通过以下方式进行以下调用POST /resource:
@post('/resource')
post_item(name=item_name, value=item_value)
Run Code Online (Sandbox Code Playgroud)
未来版本可能会:
@post('/resource')
post_item(name=item_name, value=item_value, fullname=longer_item_name)
Run Code Online (Sandbox Code Playgroud)
为简单起见,假设关键字参数'name','value','fullname'来自FROM数据字段:
<input name="name" type="text" />
Run Code Online (Sandbox Code Playgroud)
现在,我想到的第一件事就是version在开头插入一个参数,类似于IP对其标题所做的事情:
post_item(v=1, name=item_name, value=item_value)
post_item(v=2, name=item_name, value=item_value, fullname=longer_item_name)
Run Code Online (Sandbox Code Playgroud)
但是,它似乎有点麻烦.是否有任何网络微框架库可以帮助解决这个问题?我是否超出了微框架的范围?
它绝对不是一个被证明是坏主意的,更像是一个被证明是必需的.问题在于,对于处理它的最佳方式几乎没有达成一致(除了基于URI的方法的高级协议之外).
Apigee在这里有一些关于API版本策略的好文章:
https://blog.apigee.com/taglist/versioning
这里有一个很好的概述流行的API如何处理版本控制,以及一些讨论版本控制策略的资源:
http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/
| 归档时间: |
|
| 查看次数: |
1470 次 |
| 最近记录: |