我已经创建了路径:
POST /books/4/chapters
Chapter
实体是组合的一部分Book
。没有书就不可能存在于系统中。现在通过发布到上面的 URI 创建章节后,我是否应该为答案资源创建另一组 URI 以更新和获取特定章节?
GET /books/4/chapters/6
还是GET /chapters/6
?
请记住,一旦您拥有一个级别的主键,您通常不需要包含上述级别,因为您已经获得了您的特定对象。换句话说,你不应该需要太多比我们上面的 /resource/identifier/resource 更深的 URL 的情况。
来自 apigee Web API 设计
这GET /chapters/6
将更符合文章所说的,但这也意味着您的对象不再在其父级的范围内(因为它是类 Book 的复合对象的一部分)。但是我觉得这更好,因为章节可能再次是其他对象的组合,这意味着您会获得长嵌套的 URI
GET /books/4/chapters/5/paragrahps/5
如果一切都应该在父母的范围内。
这样做的首选方法是什么
编辑
经过更多思考之后,最好有类似/books/4/chapters/9
等的URI,因为您在代码中没有存储库等来检索没有父级的特定反馈,因为它是复合的?