Я создал лямбда-функцию с использованием Java, которая отправляет запрос в REST API и получает байтовый массив, закодированный в base64 и возвращаемый из лямбды
@Override
public Object handleRequest(final Request<Object> input,final Context
context)
//construct request
Base64 codec = new Base64();
final HttpResponse response = client.execute(request);
byte[] pdfResponse =
IOUtils.toByteArray(resonse.getEntity().getContent());
return codec.encode(pdfRespnse); //returns encoded byte array
В swagger (2.0), я упомянул, производит:[application / pdf] на корневом уровне и тип схемы в виде файла в ответе 200.
Настройки шлюза API -
- Установите двоичный тип носителя для "application / pdf" и "application/ octet-stream "(также пытался с * / *)
- Гарантировал, что шлюз API - метод Response включал HTTP-статус для« 200 »с телом ответа Тип содержимого« application / pdf »(пустой)модель)
- Указанная обработка содержимого при преобразовании в двоичный файл.
Когда я попадаю на конечную точку через почтальона, я вижу строку JSON в кодировке UTF-8 в ответе и заголовок ответа как "application / pdf».Получил ответ 500, когда я попытался установить заголовок Accept запроса как «application / pdf» (но мог видеть octetstream, а также закодированный байтовый массив в журналах). Я думаю, единственное, что мне здесь не хватает, это свойство isBase64Encoded, установленное в true. Но яне могу понять, как установить его в моем коде. Есть мысли по этому поводу?