用于检索 Flask 上所有数据的资源可选参数 Restful

resource optional argument for retrieving all data on Flask Restful

我想了解 Flask-RESTful,但我不知道如何为资源提供可选参数。

即:

class TodoSimple(Resource):
    def get(self, todo_id):
        return {todo_id: todos[todo_id]}

    def put(self, todo_id):
        todos[todo_id] = request.form['data']
        return {todo_id: todos[todo_id]}


api.add_resource(TodoSimple, '/<string:todo_id>')

在上述情况下,如何创建一个新的终点,returns 所有待办事项,而不仅仅是一个?

取自:https://flask-restful.readthedocs.io/en/0.3.5/quickstart.html

由于您需要不同的路由来检索所有待办事项,因此创建另一个 class 来处理多个资源。在你的情况下你会做这样的事情:

class TodoSimples(Resource):
    def get(self):
        return {'todos': todos}

api.add_resource(TodoSimples, '/todos')

我认为最好的方法是有两个Resources/endpoints。第一个管理集合(获取待办事项列表,添加新的待办事项),第二个管理集合的项目(更新或删除项目):

class TodoListResource(Resource):
    def get(self):
        return {'todos': todos}


class TodoResource(Resource):
    def get(self, todo_id):
        return {todo: todos[todo_id]}

    def put(self, todo_id):
        todos[todo_id] = request.form['data']
        return {todo: todos[todo_id]}


api.add_resource(TodoListResource, '/todos')
api.add_resource(TodoResource, '/todos/<string:todo_id>/')

这种方式更加 REST。