header("Content-Type": "image/jpeg") 对于 Swagger UI。
header("Content-Type": "image/jpeg") for Swagger UI.
我有一个场景需要通过 POST 请求上传图片。当我使用 Postman 客户端发送请求时没有问题。我需要使用 Swagger UI 来测试 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'
};
除了上面给定的 6 种请求类型之外,没有任何请求类型可以处理 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 的经验。有没有一种方法可以类似地添加一个可以处理图片上传的条件?
当前的 OpenAPI specification Swagger 禁止除 application/x-www-form-urlencoded
and/or multipart/form-data
.[= 之外的任何 HTTP 负载描述(通过 consumes
参数)。 15=]
其中一个原因是您不应依赖您的客户为上传的文件提供 correct MIME type。
我有一个场景需要通过 POST 请求上传图片。当我使用 Postman 客户端发送请求时没有问题。我需要使用 Swagger UI 来测试 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'
};
除了上面给定的 6 种请求类型之外,没有任何请求类型可以处理 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 的经验。有没有一种方法可以类似地添加一个可以处理图片上传的条件?
当前的 OpenAPI specification Swagger 禁止除 application/x-www-form-urlencoded
and/or multipart/form-data
.[= 之外的任何 HTTP 负载描述(通过 consumes
参数)。 15=]
其中一个原因是您不应依赖您的客户为上传的文件提供 correct MIME type。