Solución:
Especificación OpenAPI 2.0
En Swagger 2.0 (OpenAPI Specification 2.0), use un parámetro de formulario (in: formData
) con el type
ajustado a expediente. Además, la operación consumes
debe ser multipart/form-data
.
consumes:
- multipart/form-data
parameters:
- name: file
in: formData # <-----
description: The uploaded file data
required: true
type: file # <-----
Especificación OpenAPI 3.0
En OpenAPI Specification 3.0, los archivos se definen como cadenas binarias, es decir, type: string
+ format: binary
(o format: byte
, dependiendo del caso de uso). El contenido de entrada / salida del archivo se describe con la misma semántica que cualquier otro tipo de esquema (a diferencia de OpenAPI 2.0):
Solicitud de varias partes, archivo único:
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
# 'file' will be the field name in this multipart request
file:
type: string
format: binary
Solicitud de varias partes, matriz de archivos (compatible con Swagger UI 3.26.0+ y 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 directamente (el cuerpo de la solicitud es el contenido del archivo):
requestBody:
content:
application/octet-stream:
# any media type is accepted, functionally equivalent to `*/*`
schema:
# a binary file of any type
type: string
format: binary
Nota: la semántica es la misma que la de otros tipos de esquema de OpenAPI 3.0:
# content transferred in binary (octet-stream):
schema:
type: string
format: binary
Más información:
- Consideraciones para la carga de archivos
- Consideraciones especiales para el contenido de varias partes
- Carga de archivos y solicitudes de varias partes
finalmente encontré la respuesta para esto, en realidad anteriormente no hay soporte para Subir archivo, ahora actualizaron swagger-ui.js expediente. Debe reemplazar el anterior por uno nuevo y también debe definir estas propiedades en Parámetros para un parámetro en particular:
"paramType": "body",
"dataType": "file",
El mío parece funcionar con
"paramType": "formData",
"dataType": "file",