заголовок («Content-Type»: «image / jpeg») для интерфейса Swagger.

1

У меня есть сценарий, когда мне нужно загрузить изображение через запрос POST. Нет проблемы, когда я использую клиент Postman для отправки запросов. Мне нужно использовать интерфейс Swagger для проверки вызова API, и я не могу отправить изображение.

Я попытался изменить значения параметров в файле swagger.json, чтобы приспособиться к этому, но все мои попытки были тщетными.

В настоящее время я пытаюсь изменить файл swagger-ui.js. Посмотрев файл, я нашел это -

request.types = {
  html: 'text/html',
  json: 'application/json',
  xml: 'application/xml',
  urlencoded: 'application/x-www-form-urlencoded',
  'form': 'application/x-www-form-urlencoded',
  'form-data': 'application/x-www-form-urlencoded'
};

Нет типа запроса для обработки image/jpeg или любого другого типа файла, кроме шести указанных типов запросов.

Я также нашел часть кода, в которой обрабатываются multipart/form-data.

var isMultiPart = false;
if(headers['Content-Type'] && headers['ContentType'].indexOf('multipart/form-data') >= 0) {
    isMultiPart = true;
}

if (hasFormParams && !isMultiPart) {
    var encoded = '';

    for (key in formParams) {
      value = formParams[key];

      if (typeof value !== 'undefined') {
        if (encoded !== '') {
          encoded += '&';
        }

        encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value);
      }
    }

    body = encoded;
  } else if (isMultiPart) {
    if (opts.useJQuery) {
      var bodyParam = new FormData();

      bodyParam.type = 'formData';

      for (key in formParams) {
        value = args[key];

        if (typeof value !== 'undefined') {
          // required for jquery file upload
          if (value.type === 'file' && value.value) {
            delete headers['Content-Type'];

            bodyParam.append(key, value.value);
          } else {
            bodyParam.append(key, value);
          }
        }
      }

      body = bodyParam;
    }
}

Я также попытался добавить значение isImageJpeg для обработки изображений. Я не могу продолжать, так как у меня нет опыта работы с JavaScript. Есть ли способ, с помощью которого я могу аналогичным образом добавить условие, которое может обрабатывать загрузку изображений?

Теги:
rest
swagger
swagger-ui

1 ответ

1
Лучший ответ

Текущая спецификация OpenAPI Swagger запрещает любое описание полезной нагрузки HTTP (по параметру consumes), отличную от application/x-www-form-urlencoded и/или multipart/form-data.

Одной из причин этого является то, что вы не должны полагаться на свой клиент для подачи правильного типа MIME для загруженного файла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню