PHP REST架构简单设计
- REST是什么?
REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。
- REST的特点:
- 网络上的所有事物都被抽象为资源(resource)
- 每个资源对应一个唯一的资源标识(resource identifier)
- 通过通用的连接器接口(generic connector interface)对资源进行操作;
- 对资源的各种操作不会改变资源标识;
- 所有的操作都是无状态的(stateless)。
- REST的通俗说明:
- REST是通过HTTP请求的状态,去服务器端请求不同的服务方法,但是请求地址是相同的。比如请求一个http://xxxxx.com/user/的接口为例
- 例如POST方法,一般提供数据新增的功能,如果客户端是POST方法,请求上面的接口,那就是告诉服务器,是新增的操作。
- 例如GET方法,一般是获取数据,因为GET方法是默认的方法,不会对数据造成改变,所以一般是获取数据,通过GET方法请求上面的接口,就是获取用户数据
- 例如PUT方法,一般是更新操作,告诉服务器,更新用户信息。
- 例如DEL方法,一般是删除操作。
- 通过HTTP的4中请求方法,就可以在同一个接口地址上产生四种不同的请求,对接口的扩展性提供了巨大的帮助。
- REST PHP端代码简单实现:
- /**
- * DEMO
- * @author zhuli
- */
- class indexController extends Controller {
- public $initphp_list = array('test', 'user'); //Action白名单
- public $isRest = array('user');
- //请求index.php?c=index&a=user接口,通过CURL的不同请求状态
- public function run() {
- $curl = $this->getLibrary('curl');
- $a = $curl->put('http://10.9.11.1/initphp_32/demo/www/?c=index&a=user', array('username' => 'hello'));
- print_r($a);
- }
- //当请求方式是GET方法的时候
- public function user_get() {
- echo 'get';
- }
- //POST方法
- public function user_post() {
- $username = $this->controller->get_gp('username', 'P');
- echo $username;
- echo 'get';
- }
- //PUT
- public function user_put() {
- $username = $this->controller->get_gp('username', 'U');
- echo $username;
- echo 'put';
- }
- //DEL
- public function user_del() {
- $username = $this->controller->get_gp('username', 'D');
- echo $username;
- echo 'del';
- }
- }
参考:百度,InitPHP框架REST实现
PHP REST架构简单设计的更多相关文章
- 基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- 基于Flume的美团日志收集系统(一)架构和设计【转】
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- 自己动手写处理器之第一阶段(3)——MIPS32指令集架构简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版).今天是第四篇.我尽量每周四篇 1.4 MIPS32指令集架构简单介绍 本书设计的处理器遵循MIPS32 Release 1架构,所以 ...
- Micro 架构与设计
Micro 架构与设计 翻译自 Micro architecture & design patterns for microservices 注: 原文作者即 Micro 框架的开发者. 过去 ...
- Android存储系统的架构与设计
一.概述 本文讲述Android存储系统的架构与设计,基于Android 6.0的源码,涉及到最为核心的便是MountService和Vold这两个模块以及之间的交互.为了缩减篇幅,只展示部分核心代码 ...
- Java互联网架构-直播互动平台高并发分布式架构应用设计
概述 网页HTML 静态化: 其实大家都知道网页静态化,效率最高,消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法, ...
- 转:基于Flume的美团日志收集系统(一)架构和设计
美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收 ...
- delphi 三层架构简单例子(经测试成功)
delphi 三层架构简单例子(经测试成功) 转载 2013年12月19日 09:48:57 1100 所谓三层: (1) 客户端 (2) 服务器端 (3) 数据库 在数据访问时,使得客户端必须通过服 ...
- openstack架构简单介绍J版(更新中)
title : OPENSTACK架构简单介绍 openstack的发展及历史 openstack是什么? OpenStack是一个美国国家航空航天局和Rackspace合作研发的云端运算软件,以A ...
随机推荐
- Notepad++前端开发常用插件介绍
Notepad++前端开发常用插件介绍 Notepad++除了自身的功能强大之外,更是有许多非常的优秀的插件,下面就总结一下前端开发过程一些比较常用的插件. Emmet Emmet的前身是Zen Co ...
- Oracle10g 创建一个DataBase实例
Oracle10g创建DataBase实例如下:第一步:Oracle - OraDb10g_home1 -> 配置和移植工具 -> 打开Database Configuration Ass ...
- sql server的sql 语句中的列名包含[]时候,把]替换成]]就可以
sql server的sql 语句中的列名包含[]时候,把]替换成]]就可以eg: create table p.e_LOG_WebServer ( [BSCFlg] int, ), ) ); sel ...
- Android客户端面试题集锦
声明:本文问题来自但不限于Xoper.ducky大牛的面试总结,网址:http://www.nowcoder.com/discuss/3043,欢迎各位进行补充 JAVA SE 1. 九种基本数据类型 ...
- seajs实例
点击文本改变: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- [Java基础] java的守护线程与非守护线程
最近重新研究Java基础知识,发现以前太多知识知识略略带过了,比较说Java的线程机制,在Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) ,(PS:以 ...
- 为什么深度神经网络难以训练Why are deep neural networks hard to train?
Imagine you're an engineer who has been asked to design a computer from scratch. One day you're work ...
- javascript配置ckfinder的路径
<script type="text/javascript" src="ckfinder/ckfinder.js"></script> ...
- Linux环境下搭建MYSQL数据库指令详情
一.mysql数据库的安装 确保安装gcc(开发工具) #groupadd mysql #useradd -g mysql mysql #cd /usr/local # tar -zxvf mysql ...
- Android笔记——UI开发
概述: 布局(Layout)的概念是针对Activity的,Activity就是布满整个Android设备的窗体或者悬浮于其它窗体上的交互界面.在一个应用程序中通常由多个Activity构成.每一个须 ...