1

私は多くのbarを含むRESTリソースfooを持っていて、それぞれには多くのbazが含まれています。これら3つのリソースはすべて一意のIDを持っていますが、barはその文脈なしでは意味がありません。fooRESTfulなサブリソースのエンドポイントにリソースIDを含めるべきですか?

GET {api}\foo         // Returns an array of foos 
GET {api}\foo\{fooId}       // Returns a foo 
GET {api}\foo\{fooId}\bar      // An array of bars belonging to this foo 
GET {api}\foo\{fooId}\bar\{barId}    // Returns a bar 
GET {api}\foo\{fooId}\bar\{barId}\baz   // An array of bazs belonging to this bar 
GET {api}\foo\{fooId}\bar\{barId}\baz\{bazId} // Returns a baz 

FOOモデルはそのバーのサブリソースが含まれていませんが、バーモデルは、すべて彼らのbazsが含まれています。

現在のエンドポイントのデザインは、この(これらの全てが必要である)のように見えます。

idsが一意であるため、すべてのidsを含める必要はありません(特定のバーのみに興味がある場合は、親のfooも知る必要があるため)。 :

GET {api}\foo         // Returns an array of foos 
GET {api}\foo\{fooId}       // Returns a foo 
GET {api}\foo\{fooId}\bar      // An array of bars belonging to this foo 
GET {api}\foo\bar\{barId}      // Returns a bar 
GET {api}\foo\bar\{barId}\baz     // An array of bazs belonging to this bar 
GET {api}\foo\bar\baz\{bazId}     // Returns a baz 

私は、一意の識別子とサブリソースのエンドポイントのいずれかのRESTfulな規則を記述したドキュメントを見つけることができない最も理にかなっているか、私が考慮されていない第3の選択肢があり、これら二つのオプションのどちら

。??

答えて

0

RESTfulコンバージョンについて説明するドキュメントが見つかりません一意の識別子を持つサブリソースのエンドポイントに対するエントリ。あなたが特にhttps://api.stackexchange.com/docs

のようなものを探しているかもしれない

/api/answers/{answer.id}/questionsはあなたに質問が含まれた項目の表現を与え、/api/questions/{question.id}/answersは他の道を行くことに気づきます。

関連する問題