gpt4 book ai didi

swagger - 如何在 Swagger (OpenAPI) 中发布文件?

转载 作者:行者123 更新时间:2023-12-03 06:10:37 24 4
gpt4 key购买 nike

我正在使用 Swagger 来记录我的 REST 服务。我的一项服务需要上传 CSV 文件。我将以下内容添加到 JSON API 定义中的 parameters 部分:

{
"name": "File",
"description": "The file in zip format.",
"paramType": "body",
"required": true,
"allowMultiple": false,
"dataType": "file"
}

现在我在 Swagger UI 页面上看到文件上传选项。但是当我选择一个文件并单击“尝试一下”时,出现以下错误:

NS_ERROR_XPC_BAD_OP_ON_WN_PROTO: Illegal operation on WrappedNative prototype object in jquery-1.8.0.min.js (line 2)

该页面正在持续处理,但我没有收到任何响应。

有什么想法可能是错误的吗?

最佳答案

OpenAPI 规范 2.0

在 Swagger 2.0 ( OpenAPI Specification 2.0 ) 中,使用表单参数 (in: formData),并将 type 设置为 file。此外,操作的consumes必须是multipart/form-data

  consumes:
- multipart/form-data
parameters:
- name: file
in: formData # <-----
description: The uploaded file data
required: true
type: file # <-----

OpenAPI 规范 3.0

OpenAPI Specification 3.0 ,文件被定义为二进制字符串,即类型:字符串 + 格式:二进制(或格式:字节,具体取决于用例)。文件输入/输出内容使用与任何其他模式类型相同的语义进行描述(与 OpenAPI 2.0 不同):

多部分请求,单个文件:

requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
# 'file' will be the field name in this multipart request
file:
type: string
format: binary

多部分请求,文件数组(Swagger UI 3.26.0+ 和 Swagger Editor 3.10.0+ 支持):

requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
# The property name 'file' will be used for all files.
file:
type: array
items:
type: string
format: binary

直接POST/PUT文件(请求体为文件内容):

requestBody:
content:
application/octet-stream:
# any media type is accepted, functionally equivalent to `*/*`
schema:
# a binary file of any type
type: string
format: binary

注意:语义与其他 OpenAPI 3.0 架构类型相同:

# content transferred in binary (octet-stream):
schema:
type: string
format: binary

更多信息:

关于swagger - 如何在 Swagger (OpenAPI) 中发布文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com