Я пытаюсь подключить конечную точку API в Azure (управление API) к бэкэнд-службе. Однако политика set-body не распознает мое тело JSON и, следовательно, не преобразует его для внутреннего вызова.
Я перепробовал все итерации для шаблонов «Жидкость» и «Нет». Документация Microsoft бесполезна, поскольку даже «жидкий» шаблон пишется с заглавной буквы в документе, тогда как он ДОЛЖЕН быть строчным. Даже статья о Deep Dive, на которую все указывают, вводит в заблуждение и / или устарела.
Мне однажды удалось получить ссылку {{context.Request.OriginalUrl}} для работы с использованием жидкого шаблона, но я не могу получить ссылку {{body.json}} для работы
Вот политика, которая у меня есть в разделе (чисто для тестирования - это бесполезно для того, что я делаю):
<set-body template="liquid">
Calling User Agent: {{context.Request.OriginalUrl}}
</set-body>
И вот пример того, что я должен пытаться прочитать тело json (проходя через POST):
<set-body template="liquid">{{body}}</set-body>
Я пробовал несколько итераций и вводов, как показано ниже:
<set-body template="liquid">{{body.json}}</set-body>
проходя сквозь такое тело:
{"json":"this is an example body"}
Независимо от того, что я делаю, это то, что я вижу в трассировке после тестирования вызова:
set-body (0.069 ms)
{
"input": null,
"output": ""
}
Я, очевидно, открыт для использования шаблона none, но я сталкиваюсь с теми же проблемами. Документация неверна - если я копирую / вставляю пример:
<set-body>@(context.Body.As<String>())</set-body>
Я получаю сообщения об ошибках типа:
One or more fields contain incorrect values:
Error in element 'set-body' on line 32, column 10: 'IProxyRequestContext' does not contain a definition for 'Body' and no extension method 'Body' accepting a first argument of type 'IProxyRequestContext' could be found (are you missing a using directive or an assembly reference?)
и когда я получаю его не с ошибкой, он возвращает тот же вывод "output": "".