/blog.do?action=create 查看某篇blog GET /blog.do?action=show&id=1 查看所有blog GET /blog.do?action=list 发表评论 POST /blog.do?action=comment&blog_id=1 查看某个blog所有评论 GET /blog.do?action=show_comment&blog_id=1 有些坏味道了! 是不是该有/comment.do? 是不是该统一所有“动词”的名称? 我们应该有规范! 让REST来规范!
用http method来表达语义 发表blog POST /blogs 获取某一篇blog GET /blogs/:id 修改某篇blog PUT /blogs/:id 删除某篇blog DELETE /blogs/:id method 语义 POST 表示创建 (CREATE) GET 表示读取、展示 (READ) PUT 表示更新、修改 (UPDATE) DELETE 表示删除 (DELETE) 获取所有blog GET /blogs 获取发表blog的页面 GET /blogs/new 获取修改blog的页面 GET /blogs/:id/edit 经典的 4种method 7种action
method URL 获取这个单数资源 GET /library 获取创建单数资源的页面 GET /library/new 获取修改单数资源的页面 GET /library/edit 删除这个单数资源 DELETE /library 创建这个单数资源 POST /library 修改这个单数资源 PUT /library
URL 查看某篇文章所有评论 GET /blogs/:blog_id/comments 查看某篇文章的某条评论 GET /blogs/:blog_id/comments/:id 获取为某篇文章添加评论的页面 GET /blogs/:blog_id/comments/new 获取修改某篇文章的某条评论的页面 GET /blogs/:blog_id/comments/:id/edit 为某篇文章添加评论 POST /blogs/:blog_id/comments 修改某篇文章的某条评论 PUT /blogs/:blog_id/comments/:id 删除某篇文章的某条评论 DELETE /blogs/:blog_id/comments/:id 嵌套不宜超过两层
– 方案3:对状态资源的修改 将blog置为可见 POST /blogs/:id/display 将blog置为不可见 DELETE /blogs/:id/display 将blog置为可见 PUT /blogs/:id display=1 将blog置为不可见 PUT /blogs/:id display=0 将blog置为可见 PUT /blogs/:id/status display=1 将blog置为不可见 PUT /blogs/:id/status display=0