Невозможно загрузить PDF, используя API-шлюз и swagger - PullRequest
0 голосов
/ 25 октября 2018

Я создал лямбда-функцию с использованием 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 -

  1. Установите двоичный тип носителя для "application / pdf" и "application/ octet-stream "(также пытался с * / *)
  2. Гарантировал, что шлюз API - метод Response включал HTTP-статус для« 200 »с телом ответа Тип содержимого« application / pdf »(пустой)модель)
  3. Указанная обработка содержимого при преобразовании в двоичный файл.

Когда я попадаю на конечную точку через почтальона, я вижу строку JSON в кодировке UTF-8 в ответе и заголовок ответа как "application / pdf».Получил ответ 500, когда я попытался установить заголовок Accept запроса как «application / pdf» (но мог видеть octetstream, а также закодированный байтовый массив в журналах). Я думаю, единственное, что мне здесь не хватает, это свойство isBase64Encoded, установленное в true. Но яне могу понять, как установить его в моем коде. Есть мысли по этому поводу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...