REST のリンクをどこまで使用できるかについて、ずっと疑問に思っていました。著者がいる本を考えてみましょう。しかし、本と著者の間には明らかに多対多の関係があります (本は複数の著者によって書かれ、著者は複数の本を書くことができます)。
http://server/book/21
では、著者に関する情報を含む書籍の XML を返すrest callがあるとします。本はリソースであり、著者はリソースであるため、XML にすべての著者情報を直接含める必要はありません。著者情報へのリンクが含まれている必要があります。しかし、以下の 2 つの例のうち、より広く受け入れられているのはどれですか?
(私のくだらないフォーマットの XML ですみません。私は XML を手書きする経験があまりありません)
<book>
<title>Some Book</title>
<authors>
<author link="http://server/author/82">Some Guy</author>
<author link="http://server/author/51">Some Other Guy</author>
</authors>
</book>
次に、作成者リンクは詳細情報を返します。
<author>
<name>Some Guy</name>
<dateOfBirth>some time</dateOfBirth>
</author>
または:
<book>
<title>Some Book</title>
<authors>http://server/book/21/authors</authors>
</book>
戻りhttp://server/book/21/authors
値:
<authors>
<author link="http://server/author/82">Some Guy</author>
<author link="http://server/author/51">Some Other Guy</author>
</authors>
そして、それらのそれぞれが<author>
再び前の例を返します。
私が質問している理由は、基本的に、私の仕事では 2 番目のアプローチを採用したためであり、クライアントが行きたい場所に到達するには、さらに多くの手順を実行する必要があるように思われます。また、「必ず必要になる」基本情報 (作成者名) については、もう 1 つの手順を実行する必要があります。一方、この方法では、book
リソースは書籍に関する情報のみを返し (他には何も返さない)、それ以外のものを取得するには、他のリソースにアクセスする必要があります。