リソースをモデル化する方法によって異なります。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>();
}