2016-06-22 8 views
0

私はSwagger POSTを開始した別のスレッドで別の質問をしましたが、別の問題が残っています。ここでswaggerノードValidationError: "body"が必要です

は(そうほんの一部を取ったが、構文とまったく問題がない大きなファイルからそれをコピーした)

私のconfig JSONファイルの私のパラメータ定義

"/people/postTest": { 
    "post": { 
    "summary": "post test.", 
    "description": "Test.", 
    "operationId": "postTest", 
    "consumes": [ 
     "application/json" 
     ], 
    "tags": [ 
     "test post" 
    ], 
    "parameters": [ 
    { 
     "in":"body", 
     "name":"body", 
     "description": "body for the POST request", 
     "required":true, 
     "schema": {"$ref":"#/definitions/inBody"} 
     } 

    ] }} 

"definitions": { 
    "inBody": { 

    "properties": { 
    "RequestSystem": { 
     "type": "string" 
    }}}} 

であり、私は使用しています

curl -H "Content-Type: application/json" -X POST -d '{"RequestSystem":"IVR"}' http://localhost:8016/people/postTest 

、これは私が私のノードサーバ

を起動しようとすると、私は取得しています検証エラーである私の要求を投稿するCURL
**ValidationError: "body" is required** 

私は "RequestSystem"パラメータを渡していることは知っていますが、私は自分の設定jsonファイルの "parameters"で自分のパラメータをどこに設定するのか間違っています。どんな助けもありがとう。

答えて

1

私はあなたがrequired=false

[ 
{ 
    "in":"body", 
    "name":"body", 
    "description": "body for the POST request", 
    "required":false, 
    "schema": {"$ref":"#/definitions/inBody"} 
    } 
] 
} 
} 

は、それが動作するはずです、これを試してみてください作成する必要があると思います。

+0

MANISH、感謝の意を表します。私はそれを「必須」にしました:あなたが提案したとおりに間違っています。これで検証が完了します。しかし、私がRESTサービスにconsole.log(req.body)を持っていると私に "undefined"が与えられています。私は何が欠けていますか?助言がありますか? – JBone

+0

RESTサービスでは、本体のペリメーター名は 'RequestSystem'と同じです。ボディープロパティーと同じ名前を使用しない場合 –

+0

もう一度ありがとうございます。ここにノード上のRESTサービスがあり、jsを表現しています。 app.use(bodyParser.json()) app.use(bodyParser.urlencoded({extended:true})); console.log( "私はtestPostサービスに含まれています); //これが表示されます console.log(" req body " 、req.body)// '未定義'と言うので、ここでRequestSystemにアクセスするにはどうしたらいいですか?私はparamが "req.body.RequestSystem"のようなものであると思っていました.. – JBone

関連する問題