PHP REST架构简单设计

  • REST是什么?

REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

  • REST的特点:
  1. 网络上的所有事物都被抽象为资源(resource)
  2. 每个资源对应一个唯一的资源标识(resource identifier)
  3. 通过通用的连接器接口(generic connector interface)对资源进行操作;
  4. 对资源的各种操作不会改变资源标识;
  5. 所有的操作都是无状态的(stateless)。
  • REST的通俗说明:
  1. REST是通过HTTP请求的状态,去服务器端请求不同的服务方法,但是请求地址是相同的。比如请求一个http://xxxxx.com/user/的接口为例
  2. 例如POST方法,一般提供数据新增的功能,如果客户端是POST方法,请求上面的接口,那就是告诉服务器,是新增的操作。
  3. 例如GET方法,一般是获取数据,因为GET方法是默认的方法,不会对数据造成改变,所以一般是获取数据,通过GET方法请求上面的接口,就是获取用户数据
  4. 例如PUT方法,一般是更新操作,告诉服务器,更新用户信息。
  5. 例如DEL方法,一般是删除操作。
  6. 通过HTTP的4中请求方法,就可以在同一个接口地址上产生四种不同的请求,对接口的扩展性提供了巨大的帮助。
  • REST PHP端代码简单实现:
  1. /** 
  2.  * DEMO 
  3.  * @author zhuli 
  4.  */  
  5. class indexController extends Controller {  
  6.       
  7.    public $initphp_list = array(‘test‘‘user‘); //Action白名单  
  8.     public $isRest = array(‘user‘);  
  9.     //请求index.php?c=index&a=user接口,通过CURL的不同请求状态  
  10.     public function run() {   
  11.         $curl = $this->getLibrary(‘curl‘);  
  12.         $a = $curl->put(‘http://10.9.11.1/initphp_32/demo/www/?c=index&a=user‘array(‘username‘ => ‘hello‘));  
  13.         print_r($a);  
  14.     }  
  15.     //当请求方式是GET方法的时候  
  16.     public function user_get() {  
  17.         echo ‘get‘;  
  18.     }  
  19.     //POST方法  
  20.     public function user_post() {  
  21.         $username = $this->controller->get_gp(‘username‘‘P‘);  
  22.         echo $username;  
  23.         echo ‘get‘;  
  24.     }  
  25.     //PUT  
  26.     public function user_put() {  
  27.         $username = $this->controller->get_gp(‘username‘‘U‘);  
  28.         echo $username;  
  29.         echo ‘put‘;  
  30.     }  
  31.     //DEL  
  32.     public function user_del() {  
  33.         $username = $this->controller->get_gp(‘username‘‘D‘);  
  34.         echo $username;  
  35.         echo ‘del‘;  
  36.     }  
  37. }  



参考:百度,InitPHP框架REST实现

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。