У меня есть API, который возвращает объект JSON, один из атрибутов которого содержит некоторые двоичные данные в кодировке base64 (файл PDF). Я хочу использовать политику в Azure API Management перед этим API, чтобы ответ возвращал только декодированные двоичные данные.
Я могу декодировать двоичные данные в байтовый массив, но для его возврата мне нужно обновить тело ответа содержимым этого байтового массива (я также соответственно установил заголовок типа контента). Политика set-body - это та, которую я пытался использовать:
<set-body>@{
var response = context.Response.Body.As<JObject>(true);
string content = response.Value<string>("content");
Byte[] bytes = Convert.FromBase64String(content);
return bytes; // Can't do this!
}</set-body>
Вышеприведенное не работает, поскольку тип возвращаемого значения для set-body должен быть строкой. Я не могу преобразовать двоичные данные в строку, так как они будут повреждены кодировкой ASCII. Я не могу напрямую попытаться присвоить значение context.Response.Body, поскольку оно доступно только для чтения в рамках политики.
Есть ли другой способ заставить управление API Azure вернуть мой байтовый массив в ответе?