我使用扬鞭来记录我的REST服务。 我的一个服务要求上传CSV文件。 我添加了下面的parameters
在我的JSON API定义部分:
{
"name": "File",
"description": "The file in zip format.",
"paramType": "body",
"required": true,
"allowMultiple": false,
"dataType": "file"
}
现在我看到我扬鞭UI页面上的文件上传选项。 但是,当我选择一个文件,然后点击“尝试一下”,我得到以下错误:
NS_ERROR_XPC_BAD_OP_ON_WN_PROTO:在jquery的-1.8.0.min.js上WrappedNative原型对象非法操作(线2)
该页面被连续处理,我没有得到任何回应。
任何想法可能是错误的?
OpenAPI的规范2.0
在扬鞭2.0( OpenAPI的规范2.0 ),使用的一种形式参数( in: formData
)与type
设置为文件 。 此外,操作的consumes
必须是multipart/form-data
, application/x-www-form-urlencoded
或两者。
consumes:
- multipart/form-data # and/or application/x-www-form-urlencoded
parameters:
- name: file
in: formData # <-----
description: The uploaded file data
required: true
type: file # <-----
OpenAPI的规范3.0
在OpenAPI的规范3.0 ,文件被定义为二进制字符串,即, type: string
+ format: binary
(或format: byte
,这取决于使用情况)。 文件输入/输出的内容具有相同语义的任何其它模式类型(不像的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
多部分请求,文件的数组:
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
更多的信息:
- 注意事项文件上传
- 特别注意事项多内容
- 文件上传和多部分请求
终于让我找到了这个答案,其实以前有文件上传的支持,现在他们更新招摇,ui.js文件。 您需要替换旧的一个新的,你也必须定义的参数下的特定参数这些属性:
"paramType": "body",
"dataType": "file",
矿似乎与合作
"paramType": "formData",
"dataType": "file",