Сделать параметр 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 года, похоже, что среда не позволяет такого рода поведение.
Рекомендуемое решение - создать два Resource
s, один с параметром и один без. Это обходной путь, который я использовал; обычно связывая его с простым базовым классом с методом и необязательным параметром, которые оба вызывают.
Пример из выпуска 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>')