对端点使用单个处理程序会违反 REST 原则吗?
Having a single handler for an endpoint would be against REST principles?
关于 this 教程(Miguel Grinberg:RESTful 应用程序与 Flask),我遇到了一些疑问。
本教程展示了如何创建具有多个路由的资源,并且每个路由都有不同的行为。
我的问题是关于 REST 架构的:
- 为资源提供更紧凑的结构,而不是为每个 HTTP 动词设置多个路由,是否违反 REST 原则?
这是我所说的一个例子:
@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
Would it be against the REST principles, to have a more compact construction for a resource, instead of having multiple routes for each HTTP verb?
没有
REST 和 HTTP 都不关心您如何实现消息处理程序。他们只关心消息的语义。只要您的实现的响应与无聊的超媒体文档存储的响应没有区别,您就很好。
关于 this 教程(Miguel Grinberg:RESTful 应用程序与 Flask),我遇到了一些疑问。
本教程展示了如何创建具有多个路由的资源,并且每个路由都有不同的行为。
我的问题是关于 REST 架构的:
- 为资源提供更紧凑的结构,而不是为每个 HTTP 动词设置多个路由,是否违反 REST 原则?
这是我所说的一个例子:
@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
Would it be against the REST principles, to have a more compact construction for a resource, instead of having multiple routes for each HTTP verb?
没有
REST 和 HTTP 都不关心您如何实现消息处理程序。他们只关心消息的语义。只要您的实现的响应与无聊的超媒体文档存储的响应没有区别,您就很好。