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