Я настраиваю входящие политики в экземпляре Azure API Management.
Сначала я устанавливаю переменную:
<set-variable name="var1" value="" />
Затем отправляю запрос
<send-request mode="new" response-variable-name="var1" timeout="20" ignore-error="false">
Что возвращает JSON.При тестировании я получаю следующее сообщение на вкладке трассировки:
GET запрос к 'https://my -api.azure-api.net / api / data ' был отправлен,результат сохраняется в переменной 'var1'.
Я полагаю, что политика отправки запросов работает, и результат сохраняется в переменной.Затем я хочу вернуть ответ (все еще во входящем, я получаю 500 при попытке сделать это в исходящем):
<return-response response-variable-name="existing response variable">
<set-status code="200" reason="OK" />
<set-header name="Content-Type" exists-action="override">
<value>application/json</value>
</set-header>
<set-body>
{
"success": true,
"var1": context.Variables["var1"]
}
</set-body>
</return-response>
Моя проблема в том, что он не работает ... Он просто отображает context.Variables["var1"]
.
И так же:
@context.Variables["var1"]
@{ context.Variables.GetValueOrDefault<string>("var1") }
@context.Variables.GetValueOrDefault("var1")
Все они отображаются как написанные, никакие значения не извлекаются.
Редактировать: я также попытался добавить строку-заполнитель и затем использовать
<find-and-replace from="Placeholder" to="context.Variables.GetValueOrDefault("var1")" />
И попытаться поместить ее во входящие и исходящиетак.Но эта политика не запускалась.
Это объект JSON, который я хочу добавить к ответу (небольшая деталь: на самом деле у меня есть эта проблема с несколькими переменными).
Мой вопрос:Как я могу добавить мою объявленную переменную в ответ?