Политика тела набора служб управления API Azure - измените ответ JSON для возврата определенных полей
На основе
Политика управления Azure API "Задать тело"
Мы можем изменить ответ службы API. Например, вместо того, чтобы вернуться ниже:
{
"company" : "Azure",
"service" : "API Management"
}
Мы хотели бы только вернуть:
{ "company" : "Azure" }
Я не уверен, как это сделать, так как я понятия не имею, какой язык программирования / синтаксис они используют в своей документации, как показано ниже:
<set-body>
@{
string inBody = context.Request.Body.As<string>(preserveContent: true);
if (inBody[0] =='c') {
inBody[0] = 'm';
}
return inBody;
}
</set-body>
1 ответ
То, на что ты смотришь, называется Policy expressions
и хорошо описано в официальной документации здесь. Краткая цитата с сайта гласит:
Синтаксис выражений политики - C# 6.0. Каждое выражение имеет доступ к неявно предоставленной переменной контекста и разрешенному подмножеству типов.NET Framework.
Более подходящий образец в set-body
сэмплы будут фильтровать вывод:
<!-- Copy this snippet into the outbound section to remove a number of data elements from the response received from the backend service based on the name of the api product -->
<set-body>@{
var response = context.Response.Body.As<JObject>();
foreach (var key in new [] {"minutely", "hourly", "daily", "flags"}) {
response.Property (key).Remove ();
}
return response.ToString();
}
</set-body>
Чтобы настроить это для вашего конкретного объекта - вы хотите удалить service
имущество:
<set-body>@{
var response = context.Response.Body.As<JObject>();
foreach (var key in new [] {"service"}) {
response.Property (key).Remove ();
}
return response.ToString();
}
</set-body>