У меня проблема с исходным кодом, сгенерированным коденом 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