我正在构建一个 REST API,其中有“书籍”和“用户”。他们只能存在一本独特的书。尽管一个用户可以拥有几本书,而不同的用户可以拥有同一本书(或引用相同的书)。用户可以向书籍添加附加信息(例如评级)。
我的问题是:当用户使用自己的设置“扩展”已经存在的 Book 资源时,映射资源的正确方法是什么?
示例:第一次使用的用户没有书,但他们可以创建书。如果这本书不存在,它就会被创建,如果它存在,他们就可以访问它。尽管他们可以向其中添加自己的私人附加信息。
这是正确的方法吗?
//所有具有基本所需信息的书籍都可以在 /books/:id 上找到 示例:/books/1
{
"id":1,
"title":"The Empire",
"description":"Description about the book",
"serial":1234
}
//如果用户创建书“帝国”(序列号: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/ 这样的 URL
{
"rating":5.5,
"note":"I liked the book but it was too long."
}