Сделать параметр Get не обязательным

У меня есть код ниже

@ns.route('/blah/<query>', methods=['GET'])
@api.doc(params={'query': 'Search ID'})
class myClass(Resource):
    @api.doc('blah', responses={ 200: 'OK' })
    def get(self, query):
        """Returns list of blah."""

что дает мне результат ниже: введите описание изображения здесь введите описание изображения здесь

Вопрос в том, как сделать значение параметра Get необязательным?

1 ответ

Я не уверен, что это все еще так, и я буду первым, кто признает, что я новичок в этой конкретной среде, но, основываясь на ответах на эту ошибку 2013 года, похоже, что среда не позволяет такого рода поведение.

Рекомендуемое решение - создать два Resources, один с параметром и один без. Это обходной путь, который я использовал; обычно связывая его с простым базовым классом с методом и необязательным параметром, которые оба вызывают.

Пример из выпуска GitHub:

class Users(Resource):
    def get(self):
        return users
    def post(self):
        #...

class User(Resource):
    def get(self, id=None):
        return find_user_by_id(id)
    def post(self):
        #...

api.add_resource(Users, '/users')
api.add_resource(User, '/users/<id>')
Другие вопросы по тегам