0

OpenRastaを使用してSurveyアプリケーションを作成しています。

/ Surveys / {id}でアクセスでき、/ Surveys / {id}/editで編集可能なSurveyResourceがあります。

アンケートのポイントなので、アンケートに質問を追加したいと思いますが、これを行う最も安らかな方法と、ORでの設定方法がわかりません。

QuestionResource(質問の種類や質問のテキストなどの詳細が含まれている)が必要で、/ Surveys / {id} / questionに投稿して質問ハンドラーで処理する必要があると思いますが、作業できませんORの構成方法について説明します。

プロジェクトをhttps://github.com/oharab/OpenSurvey/tree/add_question_to_surveyのgithubにプッシュしました

誰か助けてもらえますか?

ベン

4

1 に答える 1

1

リソースをモデル化する方法によって異なります。1 つの質問へのアクセスを明示的に提供せず、調査ドキュメント全体を次のように変更する可能性は十分にあります。

PUT /surveys/123

<survey>

  <link rel="update" href="/surveys/123" method="PUT"
        type="application/vnd.mycorp.survey+xml" />

  <question id="age">
    <label>How old are you?</label>
    <select>
      <option>0 - 5</option>
      <option>6 - 10</option>
      <option>10 - 13</option>
    </select>
  </question>
</survey>

このルートに進むと、コンテンツに HTML または HTML 5 を使用することもできるため、クライアントが簡単に使用できます。これで、アンケート ドキュメント全体を一度に変更できます。

または、次のように、各質問に個別に対処して、個別の URI を指定することもできます。

GET /survey/123

<survey>
  <link rel="add-question" href="/survey/123/questions"      
        type="application/vnd.mycorp.surveyquestion+xml" method="POST" />

  <question>

    <link rel="delete" href="/questions/123-age" method="DELETE" />
    <link rel="update" href="/questions/123-age" type="application/vnd.mycorp.surveyquestion+xml" method="PUT" />

    <label>How old are you?</label>
    <select>
      <option>0 - 5</option>
      <option>6 - 10</option>
      <option>10 - 13</option>
    </select>
  </question>
</survey>

これらはどちらも他より RESTful ではなく、違いは呼び出しの粒度のみです。後者の粒度が必要な場合は、次のようにリソースごとに個別のハンドラーを構成します。

using(OpenRastaConfiguration.Manual)
{
   ResourceSpace.Has.ResourcesOfType<Survey>().AtUri("/survey/{id}").HandledBy<SurveyHandler>();
   ResourceSpace.Has.ResourcesOfType<Question>().AtUri("/questions/{id}").HandleBy<QuestionHandler>();
}
于 2011-08-16T08:19:59.747 に答える