2017-01-15 46 views
1

私は文書化されていないRESTful APIを扱っています。しかし、その背後にあるコードはopensourceです。それはhapiとBookshelfjsの組み合わせで書かれているようです。私はルートの1つにPOSTリクエストを送信する方法を理解しようとしていますが、動作していません。これは私のPOSTリクエストされhapiでコーディングされたAPIを使って作業しています

{ 
    method: 'POST', 
    path: '/api/survey_answer', 
    handler: (request, reply) => { 
     if (request.payload.responses) { 
     Promise.all(
      request.payload.responses.map(function(answer) { 
       var surveyAnswer = new SurveyAnswer() 
       var newAnswer = surveyAnswer 
       .save({ 
       survey_response_id: answer.surveyResponseId, 
       question_id: answer.questionId, 
       answer_id: answer.answerId, 
       intensity: answer.intensity 
       }) 
       .catch(function(err) { 
       console.error(err) 
       }) 

       return newAnswer 
      }) 
     ).then(function (newSurveyAnswers) { 
      reply(newSurveyAnswers) 
     }) 
     } 
    } 
}, 

POST /api/survey_answer HTTP/1.1 
Host: 192.168.145.129:3000 
Content-Type: application/json 
Cache-Control: no-cache 

[{"surveyResponseId":1,"questionId":1,"answerId":1,"intensity":3}] 

は私が間違って何をやっている、以下のルートにコードがありますか?

答えて

1

エンドポイントが、ペイロードオブジェクト(ヒント:if (request.payload.responses))のキーresponsesに関連付けられている配列を期待しているようです。

であるためにあなたのPOSTペイロードを変更してみてください:それはおそらくそれであるように

{"responses": [{"surveyResponseId": 1,"questionId": 1,"answerId": 1,"intensity": 3}]} 
+0

が見えます。今晩はやってみよう。 – Nathan

+1

それは動作します。どうもありがとうございます。 – Nathan

関連する問題