Swaggerを使用してRESTサービスを文書化します。サービスの1つにCSVファイルをアップロードする必要があります。JSONAPI定義の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:jquery-1.8.0.min.jsのWrappedNativeプロトタイプオブジェクトに対する不正な操作(2行目)
ページは継続的に処理されており、応答がありません。
何が間違っている可能性がありますか?
最後に私はこれに対する答えを見つけました、実際には以前はファイルのアップロードのサポートがありませんでしたが、今は更新されましたswagger-ui.jsファイル。古いものを新しいものに置き換える必要があります。また、特定のパラメーターのパラメーターでこれらのプロパティを定義する必要があります。
"paramType": "body",
"dataType": "file",
Swagger 2.0( OpenAPI Specification 2. )では、フォームパラメーター(in: formData
)type
をfileに設定します。また、操作の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 Specification 3. では、ファイルはバイナリ文字列、つまり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
さらに詳しい情報:
私と一緒に働くようです
"paramType": "formData",
"dataType": "file",