С помощью GET я могу просто добавить параметр в определение функции:
[FunctionName("GetKittenById")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "GetKittenById/{kittenId}")] HttpRequest req,
string kittenId,
ILogger log) { ... }
Я хочу сделать то же самое с POST.Однако, если я добавлю параметр и сделаю это:
[FunctionName("CreateKitten")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "POST", Route = "CreateKitten")] HttpRequest req,
Kitten kitten,
ILogger log) { ... }
Тогда моя функция выдает ошибку, когда она POST'd to.
[03/03/2019 16:17: 00] Произошла необработанная ошибка хоста.
[03/07/2019 16:17:00] Microsoft.Azure.WebJobs.Host:
«CreateKitten» нельзя вызвать из Azure WebJobs SDK.В нем отсутствуют атрибуты Azure WebJobs SDK?.
Я не могу найти в Google, как это сделать.Я предполагаю, что есть встроенная привязка, потому что когда вы делаете GET, вы можете указать, хотите ли вы JSON или XML.Я хочу сделать то же самое в обратном порядке и позволить фреймворку обрабатывать его в случае, если они публикуют JSON или XML.
Есть ли способ сделать это автоматически или мне нужно начать ковыряться в HttpRequest и десериализоватьcontent?
Я обнаружил, что вы можете заменить HttpRequest req
на Kitten kitten
, и он будет выполнять привязку модели, но мне нужно сохранить доступ к HttpRequest
, чтобы иметь возможность читатьнекоторые пользовательские заголовки аутентификации.
Есть ли способ получить оба из них, не используя мои собственные?Проверка того, отправили ли они JSON или XML, и написание собственного кода для привязки модели - это просто проблема, так как я могу получить http-контекст.