我想为我的小项目构建一个RESTful API。我有三种简单的资源:
- 类别(id,title)
- 帖子(id,text,category_id)
- 评论(id,text,post_id)
这些是我需要的终点:
GET /categories/ => list of all categories
GET /categories/:id/posts => list of riddles in specified category
GET /posts/:id => get single post
GET /posts/:id/comments => list of comments for specified post
GET /comments/:id => get single comment
POST /posts/:id/comments => create a comment (text comes from POST params)
在这种情况下,这是一个很好的API结构吗? 这被认为是RESTful API吗?
答案 0 :(得分:1)
REST对URI结构没有任何说法,因此询问您的端点是否为REST是没有意义的。
就设计而言,我会考虑这一点:
GET /categories
GET /posts?categoryId=<categoryId> -- or you could use category name, if the name is not the same as the id
GET /posts/<postId>
GET /comments?postId=<postId>
GET /comments/<commentId>
POST /comments
{ "postId" : 123, ... }
答案 1 :(得分:0)
根据REST,url应该唯一标识您的案例中正在发生的资源。只要您的网址是可缓存的并且您使用的是正确的动词和正确的状态代码,就不要沉迷于过多关于网址结构的问题。此外,如果您希望您的api真正安静,您可能需要查看“超媒体”