web-dev-qa-db-ja.com

SwaggerUI / YAML-追加のプロパティを追加しないでくださいadditionalProperty:requestBody

editor.swagger.ioを使用してAPIを設計していますrequestBody属性を追加できず、対処できないエラーが発生しています。

Schema error at paths['/projects/{projectId}/user'].post
should NOT have additional properties
additionalProperty: requestBody
Jump to line 91

特に requestBody documentation を見た後、私が間違っていることを理解していません。研究は、エラーが誤解を招く傾向に他ならないことをもたらしました。

編集:ここでの回答が示していることから、エディターはOpenAPI 2.0を使用することになっているように見えますが、実際には3.0を期待し、両方のエラーを返します。使用するものについていくつかのヘルプを使用します。

swagger: "2.0"

文書の先頭の行。 @Mikeの回答で示されているようにopenapi: 3.0.0を使用してテストしているときに、許可された追加のプロパティに関するエラーが増えました。

エラーの原因は次のとおりです。91行目はpost:です。

/projects/{projectId}/user:
      post:
        tags:
        - projects
        summary: Modify project user.
        operationId: modifyProjectUser
        parameters:
        - name: projectId
          in: path
          description: ID of the project
          required: true
          type: integer
          format: int32
        requestBody:
          content: 
            application/json:
              schema:
              $ref: '#/definitions/User'
        responses:
          "200":
            description: Successful operation
            schema:
              type: array
              items:
                $ref: "#/definitions/User"
        security:
        - api_key: []
8
ilomax

外部ソースから説明を得たので、ここで学んだことは次のとおりです。

_swagger: 2.0_を指定することは、エディターが OpenAPI Specification 2.0. を期待することを意味しますが、OAS 3を使用すると思ったのですが、_in: body_を使用しなかった理由はまだわかりませんそもそも動作しますが、_"body"_の周りに引用符を追加したため、エラーが消えました。その後、引用符を削除してみましたが、うまくいきました。

エディターは、エラー報告に関してはあまり信頼できないようです。

13
ilomax

このエラーメッセージは見覚えがあります。スキーマの挿入を試してください:パラメーターのrequired:行の下に、type:およびformat:行をインデントします。

まだ自分のSwaggerUIサーバーをセットアップしていないので。コードスニペットを取り、SwaggerHubに貼り付けました。次に、コードベースをさらに単純化するために、$ ref:行を削除しました。エラーのない結果のスクリーンショットを次に示します。 enter image description here

2
Mike