【发布时间】:2018-11-12 11:06:50
【问题描述】:
关于this 教程(Miguel Grinberg:使用 Flask 的 RESTful 应用程序),我遇到了一些疑问。
本教程展示了如何创建具有多个路由的资源,并且每个路由都有不同的行为。
我的问题是关于 REST 架构的:
- 是否违反 REST 原则,为资源提供更紧凑的结构,而不是为每个 HTTP 动词设置多个路由?
下面是我所说的一个例子:
@app.route('/todo/api/v1.0/tasks', methods=['GET', 'POST'])
@app.route('/todo/api/v1.0/tasks/<int:task_id>', methods=['GET', 'PUT', 'DELETE'])
def tasks(task_id=None):
if task_id is None:
if request.method == "GET":
pass
elif request.method == "POST":
pass
else:
if request.method == "GET":
pass
elif request.method == "PUT":
pass
elif request.method == "DELETE":
pass
【问题讨论】:
-
您的代码永远不会违反 REST 原则,它只与方法、url 和对资源的操作有关。但从不知道你如何实现它。
-
但是将所有请求的处理放在一个函数中会使您的代码更难维护。
标签: python rest web-services flask crud