实际上不管用任何框架,只要是不考虑用ajax,那么URL都不可能完全遵循RESTful,但是这不妨碍设计一套尽量RESTful,然后也不失实用性的URL规范。
如果使用Spring的话,尽量让请求mapping到具体方法上,而不是在方法里写分支。
这样的话,可以使用以下规范
请求方法动作 | 项目指定动作 | 请求按钮指定动作 | URL | 类方法 | 备考 |
GET | /posts | index | 资源一览取得 | ||
GET | /posts/create | create | 创建初始化页面 | ||
POST | /posts | store | 创建 | ||
GET | /posts/{id} | show | 展示特定资源 | ||
GET | /posts/{id} | edit | 修改初始化页面 | ||
PUT | _method=put模拟,实际上是post | /posts/{id} | update | 修改特定资源 | |
DELETE | _method=delete模拟,实际上是post | /posts/{id} | destroy | 删除特定资源,可以和下面的多项删除合并 | |
GET | /posts?key1=xxx&key2=xxx | index | 检索。这个实际上是可以和资源取得一览合并在一起的。 | ||
DELETE | _method=delete模拟,实际上是post | /posts | destroy | 删除选定资源 | |
POST | submit按钮指定动作 | /posts /posts/{id} | 动作名 | 对一组资源或者特定资源处理。比如post形式的检索,或者特定资源内部的个别处理。 |
实际上,设计的宗旨就是,处理动作以一下优先级来设计
请求方法动作>项目指定动作>请求按钮指定动作。