Добавить uri param для GET-контроллера в приложении на flask-restplus
Хотел бы добавить добавить uri parameter для GET-контроллера.
Полностью код доступен здесь (пример взят из оф. репозитория flask-restplus)
Есть модель:
todo = api.model('Todo', {
'id': fields.Integer(readOnly=True, description='The task unique identifier'),
'task': fields.String(required=True, description='The task details'),
'is_deleted': fields.Boolean(required=True, description='The task delete condition', default="False"),
})
Необходимо получить все записи, где is_deleted== False.
Как реализовать GET-контроллер, чтобы можно было получить эти записи по адресу http://127.0.0.1:5000/todos?is_delete=false, а также можно было бы через swagger выполнить этот запрос, указав поле "is_delete" (сейчас отсутствует поле):
Какую аннотацию необходимо написать, чтобы была такая возможность?
@ns.route('/')
class TodoList(Resource):
'''Shows a list of all todos, and lets you POST to add new tasks'''
@ns.doc('list_todos')
@ns.marshal_list_with(todo)
def get(self):
'''List all tasks'''
return DAO.todos
...
Ответы (1 шт):
Можете посмотреть здесь. Возможно будет полезно для Вас! https://github.com/noirbizarre/flask-restplus/issues/146
UPD:
Получилось реализовать с помощью аннотации @ns.param:
@ns.doc('list_todos')
@ns.marshal_list_with(todo)
@ns.param('is_delete')
def get(self):
is_delete = request.args.get("is_delete", default=None)
'''List all tasks'''
return DAO.todos
