Я хочу использовать Azure Функции и автоматически анализировать модели, как в типичном ASP. NET проекте WebAPI. Итак, я пишу:
[FunctionName("StartJob")]
public async Task<IActionResult> Start(
[HttpTrigger(AuthorizationLevel.Function, "Post", Route = "v1/job")] StartJobRequestModel model)
{
this.logger.LogInformation("StartJob function has been entered.");
}
public class StartJobRequestModel
{
[JsonRequired]
public string TenantId { get; set; }
....
}
Итак, вы ожидаете, что если вы не предоставите обязательное поле TenantId
, основанное на этом коде, во время скрытой обработки JSON десериализация программы не должна даже ввести функцию тела. Но он делает следующее:
Журналы json ошибка десериализации
[10/10/2020 10:59:14 AM] Запрос успешно совпал с маршрутом с именем 'StartJob' и шаблон 'api / v1 / job'
[10/10/2020 10:59:14 AM] JSON входной форматтер выдал исключение.
[2/10/2020 10 : 59: 14 AM] Newtonsoft. Json: Обязательное свойство 'tenantId' не найдено в JSON. Путь '', строка 16, позиция 1.
[10/10/2020 10:59:14 AM] Выполнение StartJob (Reason = 'Эта функция была вызвана программно через API хоста.', Id = 22be443b-9a70-4570-8a30-1cc9b8062f1b)
[10/10/2020 10:59:16 AM] Функция StartJob была введена.
И продолжить работу без каких-либо проблемы с неожиданными исключениями после получения неожиданной модели ...
Вопросы:
- Это нормальное поведение?
- Может быть, мне нужно указать какой-то конкретный c параметр в конфиге проекта или в Startup.cs?
- ошибка Microsoft?
- ???
- Не прибыль?
Спасибо.