PS:HTTP协议中的4中请求方法,一般大家知道最多的是GET、POST,还有不常见的put、DELETE。REST架构正是利用四种方法携带不同参数值请求一个php接口来实现四种不同操作!这不是通过创新的方式产生的,只是通过整合http的请求方法来更方便实现某一类型处理的单一接口形式!
-
REST是什么
REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
-
REST的特点
- 网络上的所有事物都被抽象为资源(resource)
- 每个资源对应一个唯一的资源标识(resource identifier)
- 通过通用的连接器接口(generic connector interface)对资源进行操作;
- 对资源的各种操作不会改变资源标识;
- 所有的操作都是无状态的(stateless)。
-
REST的通俗说明
你可以把它和标准的增删改查模式对应起来:GET=加载/检索(查,select),POST=创建(增,Create),PUT=更新(改,update),DELETE=删除(DELETE)。
- 例如GET方法,一般是获取数据,因为GET方法是默认的方法,不会对数据造成改变,所以一般是获取数据,通过GET方法请求上面的接口,就是获取用户数据
- 例如POST方法,一般提供数据新增的功能,如果客户端是POST方法,请求上面的接口,那就是告诉服务器,是新增的操作。
- 例如PUT方法,一般是更新操作,告诉服务器,更新用户信息。
- 例如DEL方法,一般是删除操作。
- 通过HTTP的4中请求方法,就可以在同一个接口地址上产生四种不同的请求,对接口的扩展性提供了巨大的帮助。
-
网站”用户”例子
#接口url:"api/users" GET request to /api/users – 列举出所有的用户 GET request to /api/users/1 – 列出ID为1的用户信息 POST request to /api/users – 插入一个新的用户 PUT request to /api/users/1 – 更新ID为1的用户信息 DELETE request to /api/users/1 – 删除ID为1的用户
REST已经解决了很多令人头疼的创建接口的问题,通过一些简单的,容易理解的标准和协议。
-
php CURL方法
# curl如何发起DELETE/PUT请求? DELETE: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); PUT: curl_setopt($ch, CURLOPT_PUT, true); GET: curl_setopt($ch, CURLOPT_HTTPGET, true); POST: curl_setopt($ch, CURLOPT_POST, true); # 可以通过$_SERVER['REQUEST_METHOD']获得请求类型, # PUT/DELETE的参数可以这样获取: parse_str(file_get_contents('php://input'), $request_vars);
REST已经解决了很多令人头疼的创建接口的问题,通过一些简单的,容易理解的标准和协议。