我开始使用Flask和Python设计RESTful Web服务,我想知道如何在同一个项目中支持多个API版本.我正在考虑将请求的API版本放在URL中,如下所示:
/myapp/v1/Users
Run Code Online (Sandbox Code Playgroud)
一段时间后,我想在API的1.1版中添加另一个端点,并保留v1中没有改变的所有内容:
/myapp/v1.1/Users <= Same as in v1
/myapp/v1.1/Books
Run Code Online (Sandbox Code Playgroud)
在v2中,"Users"-endpoint被更改:
/myapp/v2/Users <= Changed in v2
/myapp/v2/Books <= Same as in v1.1
Run Code Online (Sandbox Code Playgroud)
等等...
看看这个问题,最简单的方法可能是这样的:
@app.route('/<version>/users')
def users(version):
# do something
return jsonify(response)
Run Code Online (Sandbox Code Playgroud)
但我可以想象,每个新的API版本都会越难维护.因此,我想知道是否有更好的(=更容易维护和更好的结构化)方法来实现这个与Flask?