Я не уверен, как Google это, но в основном у меня есть Flask Restful API, который обычно возвращает ответы, подобные этому:
В моем основном файле:
api.add_resource(my_package.MyClass,'/path/to/some/stuff')
Тогда в my_package.py:
class MyClass(Resource):
def post(self):
return "hello world"
Так что в основном этот метод post обрабатывает сообщения, отправленные на /path/to/some/stuff
. Но мой код становится немного сложнее, и поэтому я хочу вызывать другие методы (которые НЕ являются ресурсами API) из post()
, например:
class MyClass(Resource):
def validate_something(xyz)
...do some validation...
if (validation_fails):
return "Your validation has failed!"
def post(self):
validate_something(xyz)
return "hello world"
Проблема в том, что мне кажется, что я не могу вернуть (пользователю, попавшему в мой API) ответ из моего кода, если только он не входит в один из этих методов с поддержкой API, таких как post()
. Когда я вернусь "Ваша проверка не удалась!" выше, это не идет к пользователю, это просто идет к post()
как возвращаемое значение. Можно ли как-то «обновить» validate_something()
, чтобы он мог возвращать ответы напрямую? Или же я могу перехватить оператор return, чтобы указать, хочу ли я вернуться к пользователю или просто вернуться к вызывающему методу?
Надеюсь, это имеет смысл.