Python 为端点使用单个处理程序将违反REST原则?
关于教程(Miguel Grinberg:RESTful应用与Flask),我遇到了一些疑问 本教程展示了如何创建具有多个路由的资源,其中每个路由都有不同的行为 我的问题是关于REST体系结构:Python 为端点使用单个处理程序将违反REST原则?,python,rest,web-services,flask,crud,Python,Rest,Web Services,Flask,Crud,关于教程(Miguel Grinberg:RESTful应用与Flask),我遇到了一些疑问 本教程展示了如何创建具有多个路由的资源,其中每个路由都有不同的行为 我的问题是关于REST体系结构: 对于一个资源有一个更紧凑的结构,而不是每个HTTP谓词有多个路由,这会违反REST原则吗 下面是我所说的一个例子: @app.route('/todo/api/v1.0/tasks', methods=['GET', 'POST']) @app.rout
- 对于一个资源有一个更紧凑的结构,而不是每个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
@app.route('/todo/api/v1.0/tasks',方法=['GET','POST']
@app.route('/todo/api/v1.0/tasks/',方法=['GET','PUT','DELETE'])
def任务(任务id=无):
如果任务id为“无”:
如果request.method==“GET”:
通过
elif request.method==“POST”:
通过
其他:
如果request.method==“GET”:
通过
elif request.method==“PUT”:
通过
elif request.method==“删除”:
通过
对于一个资源有一个更紧凑的结构,而不是每个HTTP谓词有多个路由,这会违反REST原则吗
没有
REST和HTTP都不关心如何实现消息处理程序。他们只关心消息的语义。只要您的实现的响应与枯燥的超媒体文档存储的响应无法区分,您就是好的。您的代码永远不会违反REST原则,它只与方法、url和资源上的操作有关。但是,将所有请求的处理放在一个函数中会使代码的维护更加困难。