2017-10-06 27 views
1

許可されていない私が闊歩を使用して、ポストエンドポイントを定義しようとしているが、それはrequestBodyパラメータを許可されていません。闊歩:requestBody

/names/{roster}: 
    get: 
     #... 
    post: 
     x-swagger-router-controller: names 
     description: Adds or removes name(s) 
     operationId: manageNames 
     parameters: 
     - name: roster 
     in: path 
     description: the roster to use 
     type: string 
     required: true 
     requestBody: 
     content: 
      'application/json': 
      schema: 
       $ref: '#/definitions/ManageNamesRequest' 

私はnpm startを実行したとき、私はこれを取得:

API Errors: 

    #/paths/~1names~1{roster}/post: Additional properties not allowed: requestBody 

1 error and 0 warnings 

仕様に問題がありますか?

+0

'requestBody'はOpenAPIの3.0構文です。あなたのツールはOpenAPI 3.0をサポートしていますか? – Helen

+0

私はswaggerバージョン2.0を使用しています。よく分かりません? – ewok

答えて

2

OpenAPI/Swagger 2.0とOpenAPI 3.0の構文が混在している可能性があります。あなたの仕様は2.0と思われますが、requestBodyキーワードは3.0の機能です。 2.0では、リクエスト本体は本体パラメータとして定義される:

paths: 
    /names/{roster}: 
    post: 
     produces: 
     - application/json 
     ... 
     parameters: 
     - ... 
     - in: body 
     name: body 
     required: true 
     schema: 
      $ref: '#/definitions/ManageNamesRequest' 

詳しい情報:Describing Request Body