Проблемы с загрузкой файлов с помощью клиента JavaScript и реагировать - PullRequest
0 голосов
/ 11 марта 2019

У меня проблема с исходным кодом, сгенерированным коденом Swagger. Я хочу загрузить файл с реагировать. Для этого я создал Dropzone и получил путь к файлу. Если я использую сгенерированный клиент, как в документации, он не будет работать. К сожалению, файл не отправлен. Только имя файла. Консоль отладки также не показывает, что двоичные данные были отправлены.

Запрос не выполнен правильно. Файл не будет загружен. Параметр «файл» - это просто имя файла, а не двоичные данные.

Версия Swagger-codegen

OpenAPI-генератор-кли-3.3.4.jar

Содержимое файла декларации Swagger

Swagger .yaml:

  /orders/upload:
    post:
      operationId: "orderUploadPart"
      summary: "upload a textual or audio part of an order"
      tags:
        - "orders"
      description: "This funktion uploads a textual or audio part of an order to the sense.ai.tion cloud system. 
      The result is the resource identifier, that must be used in the order request."
      consumes:
        - multipart/form-data
      parameters:
        - in: "formData"
          name: "file"
          type: "file"
          required: true
          description: "the file to upload"
        - in: "formData"
          name: "media"
          type: "string"
          enum:
            - "text"
            - "wav"
            - "mp3"
          required: true
          description: "the media type of the the upload, can be ***text***, ***wav*** or ***mp3***"

Код:

var apiInstance = new SenseaitionApi.OrdersApi();
var file = "/path/to/file"; // File | the file to upload
var media = "media_example"; // String | the media type of the the upload, can be ***text***, ***wav*** or ***mp3***
var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.orderUploadPart(file, media, callback);

Это как в: https://github.com/swagger-api/swagger-codegen/blob/master/samples/client/petstore/javascript/docs/PetApi.md#uploadFile

Скриншот Chrome DevTools

Командная строка, используемая для генерации

java -jar ${GOPATH}/bin/openapi-generator-cli.jar generate -i service_js_api.yaml -g javascript -o clients/javascript/senseaition-api-js -Dio.swagger.parser.util.RemoteUrl.trustAll=true

1 Ответ

0 голосов
/ 11 марта 2019

Я нашел ошибку. Документация сгенерированного кода Javascript неверна. Для загрузки файла (Javascript объект) должен быть передан, а не путь.

Эта строка неверна:

var file = "/path/to/file"; // File | the file to upload 
...