web-dev-qa-db-fra.com

Comment définir les paramètres path et formData pour la même opération dans OpenAPI 2.0?

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?

9
JuKe

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.

17
Helen