【问题标题】:resource optional argument for retrieving all data on Flask Restful用于检索 Flask Restful 上所有数据的资源可选参数
【发布时间】:2019-06-20 10:43:54
【问题描述】:

我正在尝试了解 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>')

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

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

【问题讨论】:

    标签: python rest flask flask-restful


    【解决方案1】:

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

    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。

    【讨论】:

      【解决方案2】:

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

      class TodoSimples(Resource):
          def get(self):
              return {'todos': todos}
      
      api.add_resource(TodoSimples, '/todos')
      

      【讨论】:

        猜你喜欢
        • 2014-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-08
        • 2023-03-14
        • 2014-01-05
        • 2017-08-01
        • 2017-01-09
        相关资源
        最近更新 更多