说明
1. 在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词一般与数据库的表格名对应。
2.对于资源的具体操作类型,由HTTP动词表示。常用的HTTP动词有下面五个(括号里是对应的SQL命令)。
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
3. 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范。
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
实现(示例)
请求路径方法对应方法名如下
请求方法 请求路径 访问控制器方法 说明
GET /user index() 返回用户列表
GET /user/123 show(id) 返回id=123的用户信息
POST /user store() 新建一个用户
PUT / PATCH /user/123 update(id) 修改id=123的用户信息
DELETE /user/123 delete(id) 删除id=123的用户
POST /user/foo foo() 自定义方法
其他
前端请求方法为PUT / PATCH/DELETE 时,属于非简单访问,会产生跨域问题,会在正式通信之前,增加一次HTTP查询请求,预请求用的请求方法是OPTIONS。
服务器收到"预检"请求以后,检查Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段,确认允许跨源请求,就可以做出回应:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE
Access-Control-Allow-Headers: Origin,X-requested-with,content-Type,Accept