2016-09-27 17 views
0

私のアプリケーションのSwagger UIには、POSTとPUTメソッドがあり、どちらもPOJOをREST呼び出しのボディパラメータとして取ります。 UIを見て、モデル・スキーマをクリックしてパラメータ・ボックスを自動的に埋めると(JSON全体を入力する時間を節約するだけです)、パラメータ名は含まれないため、リクエストは失敗します。例:スガッガモデルスキーマにボディパラメータの変数名が含まれていません

モデルスキーマ:自分自身をこれを行うには、あまりにも不便ではないですが

{ "entry": { 
    "first": "string", 
    "last": "string", 
    "address": "string", 
    "email": "string", 
    . 
    . 
    . 
}} 

{ 
    "first": "string", 
    "last": "string", 
    "address": "string", 
    "email": "string", 
    . 
    . 
    . 
} 

はしかし、要求を行うために、私はようにパラメータ名entryを含める必要がありリクエストを行う前に、アプリケーションのSwagger UIを使用している他の開発者に、entryを追加する必要があることを認識していないという問題が発生しました。モデルスキーマを変更する方法はありますか?

答えて

1

パラメータのnameは、bodyパラメータではプロパティとして使用されません。あなたのモデルを記述するためには、次のようにobjectタイプでentryプロパティを定義することができます。

definitions: 
    Entry: 
    type: object 
    properties: 
     entry: 
     type: object 
     properties: 
      first: 
      type: string 
      last: 
      type: string 
      address: 
      type: string 
      email: 
      type: string 

と、次のようにあなたは、身体図式としてそれを使用することができます:私はこのコードを入れてください

post: 
    produces: 
    - application/json 
    parameters: 
    - name: body 
     in: body 
     schema: 
     $ref: '#/definitions/Entry' 
+0

を? – SVN600

+0

これを 'definitions'の下に置き、ボディスキーマとして使用します。 – Wilson

+0

正しい階層が自動的に作成されるアノテーションがありますか? – SVN600

関連する問題