J'ai un point de terminaison de téléchargement d'image qui ressemble à /test/{id}/relationships/image
. Je veux décrire ce point final en utilisant OpenAPI 2.0 (Swagger 2.0).
Le point de terminaison possède à la fois des paramètres path et formData. J'ai essayé ce qui suit:
swagger: '2.0'
info:
title: API
version: 1.0.0
Host: api.server.de
schemes:
- https
produces:
- application/json
paths:
'/test/{id}/relationships/image':
post:
operationId: addImage
consumes:
- multipart/form-data
parameters:
- in: path
name: id
required: true
schema:
type: integer
format: int32
- in: formData
name: file
type: file
required: true
description: The file to upload.
- in: formData
name: metadata
type: string
required: false
description: Description of file contents.
responses:
'202':
description: Uploaded
Mais Swagger Editor affiche des erreurs:
Erreur de schéma aux chemins ['/ test/{id}/relations/image']. Post.parameters [0] .in doit être égal à l'une des valeurs autorisées allowedValues: body, header, formData, query Aller à la ligne 17
Erreur de schéma au niveau des chemins ['/ test/{id}/relations/image']. Post.parameters [0] ne doit PAS avoir de propriétés supplémentaires additionalProperty: schema, in, name, required Aller à la ligne 17
Qu'est-ce que je fais mal?
Dans votre paramètre de chemin, changez
schema:
type: integer
format: int32
à
type: integer
format: int32
Dans OpenAPI/Swagger 2.0, les paramètres path, header, query et formData utilisent directement type
, sans schema
. Le mot clé schema
est utilisé uniquement pour les paramètres de corps.