「本」と「ユーザー」がいるRESTAPIを構築しています。彼らは1冊のユニークな本しか存在できません。ユーザーは複数の本を持つことができ、異なるユーザーは同じ本(または同じ本への参照)を持つことができます。ユーザーは、ブックに追加情報(評価など)を追加できます。
私の質問は、ユーザーが既存のブックリソースを独自の設定で「拡張」しているときにリソースをマップする適切な方法は何ですか?
例:初めてのユーザーは本を持っていませんが、本を作成できます。ブックが存在しない場合は作成され、存在する場合はアクセスできます。彼らはそれに彼ら自身の個人的な追加情報を加えることができますが。
これは適切な方法ですか?
//基本的な必要な情報を含むすべての書籍は/books/:idでアクセスできます例:/ books / 1
{
"id":1,
"title":"The Empire",
"description":"Description about the book",
"serial":1234
}
//ユーザーが本「TheEmpire」(シリアル:1234)を作成した場合、既存の本を拡張しますが、追加情報が追加されているため、実際には新しいURLですが、本IDを参照します。
例:/ users / 421 / books / 1 /
{
"id":1,
"title":"The Empire",
"description":"Description about the book",
"serial":1234,
"rating":5.5,
"note":"I liked the book but it was too long."
}
あるいは:
{
"book": {
id":1,
"title":"The Empire",
"description":"Description about the book",
"serial":1234,
}
"rating":5.5,
"note":"I liked the book but it was too long."
}
または、/ users / 421 / books / 1 /settings/のようなURLsmthですら
{
"rating":5.5,
"note":"I liked the book but it was too long."
}