web-dev-qa-db-ja.com

OpenAPI 2.0で同じ操作のパスとformDataパラメーターを定義する方法は?

/test/{id}/relationships/imageのような画像アップロードエンドポイントがあります。このエンドポイントをOpenAPI 2.0(Swagger 2.0)を使用して説明したいと思います。

エンドポイントには、pathとformDataの両方のパラメーターがあります。私は以下を試しました:

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

しかし、Swagger Editorはエラーを表示します。

パス['/test/{id}/relationships/image'].post.parameters[0].inでのスキーマエラーは、許可された値のいずれかに等しい必要がありますallowedValues:body、header、formData、query 17行目にジャンプ

パス['/test/{id}/relationships/image'].post.parameters[0]でのスキーマエラーには、追加のプロパティがありません。additionalProperty:スキーマ、入力、名前、必須行17にジャンプ

何が悪いのですか?

9
JuKe

パスパラメータで、

          schema:
            type: integer
            format: int32

          type: integer
          format: int32

OpenAPI/Swagger 2.0では、path、header、query、およびformDataパラメーターは、typeなしでschemaを直接使用します。 schemaキーワードは、本体パラメーターにのみ使用されます。

17
Helen