функции Azure возвращают http-ответ из пользовательской утилитарной функции

#python #azure #azure-functions

#python #azure #azure-функции

Вопрос:

Предположим, у меня есть API для регистрации. Я хочу получить данные из запроса и проверить их в функции Util, которую я написал и поместил в другой каталог (см. API регистрации и мой каталог Util на рисунке). Если проверка завершится неудачей, я хочу вернуть HTTP-ответ непосредственно из этой функции Util. Как я могу этого добиться?

каталог моего проекта

В init.py

 from utils.common_utils import validate
def main(req: func.HttpRequest) -> func.HttpResponse:
    req_body = validate(req)
    
    # other stuff

    return func.HttpResponse("ok", status_code=200)
 

и в моей утилитарной функции (функция проверки)

 def validate(input):
    if ...:
      return func.HttpResponse("check your input", status_code=406)
       
 

Комментарии:

1. Я не думаю, что это может быть реализовано только с помощью кода в validate функции, вы не могли бы добавить некоторый код в основную функцию?

Ответ №1:

Насколько я знаю, я не думаю, что он может возвращаться HttpResponse непосредственно из этой функции Util и выходить из основной функции. В вашем коде вы можете просто вернуться HttpResponse к req_body , а затем выполнить следующий код функции main .

Но я думаю, что если вы напишете код, подобный приведенному ниже, он также может соответствовать вашим требованиям. Это то же самое.

 def main(req: func.HttpRequest) -> func.HttpResponse:

    req_body = validate(req)

    if req_body.status_code == 406:
        return req_body

    return func.HttpResponse("ok", status_code=200)
 

Комментарии:

1. Кажется, у меня нет другого варианта, поэтому я продолжаю двигаться вперед, как и вы, спасибо.

2. @MohammadGhorbani Спасибо за ваш голос, не могли бы вы также отметить его как «принятый», еще раз спасибо.