引入Rest风格接口的特性,主要是为了适应平台化和移动化开发的需要。

移植自ThinkPHP项目的RestAction。

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

  1. 网络上的所有事物都被抽象为资源(resource);
  2. 每个资源对应一个唯一的资源标识(resource identifier);
  3. 通过通用的连接器接口(generic connector interface)对资源进行操作;
  4. 对资源的各种操作不会改变资源标识;
  5. 所有的操作都是无状态的(stateless)。

需要注意的是,REST是设计风格而不是标准。REST通常基于使用HTTP,URI,和XML以及HTML这些现有的广泛流行的协议和标准。

传统的请求模式和REST模式的请求模式区别:

作用 传统模式 REST模式
列举出所有的用户 GET /users/list GET /users
列出ID为1的用户信息 GET /users/show/id/1 GET /users/1
插入一个新的用户 POST /users/add POST /users
更新ID为1的用户信息 POST /users/mdy/id/1 PUT /users/1
删除ID为1的用户 POST /users/delete/id/1 DELETE /users/1

增加了Rest模式用于支持RESTFul开发,REST模式主要提供下面的一些功能:

  • 路由增加请求类型和资源类型判断支持;
  • 支持资源类型自动检测;
  • 支持请求类型自动检测;
  • RESTFul方法支持;
  • 可以设置允许的请求类型列表;
  • 可以设置允许请求和输出的资源类型;
  • 可以设置默认请求类型和默认资源类型;

要使用REST模式,只需要控制器继承Rest_Controller类即可。

配置名 说明 默认值
REST_METHOD_LIST REST允许的请求类型列表 get,post,put,delete
REST_DEFAULT_METHOD REST默认请求类型 get
REST_CONTENT_TYPE_LIST REST允许请求的资源类型列表 html,xml,json,rss
REST_DEFAULT_TYPE REST默认的资源类型 html
REST_OUTPUT_TYPE REST允许输出的资源类型列表 array(

'xml' => 'application/xml',

'json' => 'application/json',

'html' => 'text/html',

),

代码查看:

https://gitcafe.com/web3d/uxf/blob/master/upload/source/class/rest/rest_controller.php

Uxf框架引入Rest控制器特性的更多相关文章

  1. yii框架中关于控制器中filter过滤器和外部action的使用

    在yii框架中,控制器的过滤器分为执行前和执行后,这里举例是在执行控制器前的过滤. 需要在components/文件夹下定义公共的TestAction.php文件,并且实现run()方法.这个acti ...

  2. BootStrap框架引入文件

    bootstrap -- 框架 引入需要的  这是外网的------************************************************************* < ...

  3. 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式

    外部文件引入到视图模板的方式       1,将外部文件放在Public文件夹下,用load标签引入       2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...

  4. tp框架引入第三方sdk的经验总结

    tp框架开发常用到第三方的接口,这时候需要引入第三方的sdk.例如:微信扫码支付sdk,阿里大于的淘宝sdk等等 首先到官网上下载对应php的sdk文件,通常会有至少一个实例代码. 1 新建一个控制器 ...

  5. 基于TP框架的ThinkCMF,控制器display方法源码分析

    昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...

  6. Tp框架 之对控制器的一些操作等

    在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟 ...

  7. ThinkPHP框架之空控制器

      HOME代表的是模块  前台可以用Home 后台用Admin   Model View Controller  统称为MVC   Model  是数据模型 主要是和数据库打交道的  View代表显 ...

  8. TinkPHP框架学习-02控制器基本操作

        1-----创建控制器     2-----访问视图页面 3-----注册变量到视图页面 4-----获取表单数据 一 在Home模块下创建控制器 举例: 目录tp/Application/H ...

  9. Spring框架引入

    Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装.类型转换.文件上传.效验… Hibernate, 持久层的解决方案: 可以做到, 把对 ...

随机推荐

  1. ubuntu-16.10-desktop-amd64.iso 版本 安装 oracle 11gR2 11.2.0.1 database

    特点: 需要重新安装:libaio1_0.3.109-2ubuntu?_amd64.deb.默认的libaio库有问题,和其默认libaio的编译方式有关! 需要重新安装gcc 4.x,默认的gcc ...

  2. Oracle外键不加索引会引起死锁问题

    转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...

  3. GitHub 操作流程示例

    最新文章:Virson's Blog 参考文章: 博客园-Web前端开发,博客园-喻头快跑,GotGitHub 首先.通过github网站新建一个仓库,得到仓库地址 https://github.co ...

  4. 在Linux 应用层 基于i2c-dev.h 实现i2c读写

    /* i2c-dev.h - i2c-bus driver, char device interface Copyright (C) 1995-97 Simon G. Vogl Copyright ( ...

  5. listview 设置数组为空

    listview.setEmpty(View view); 使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,今日对这个方法进行一下小结, ...

  6. Subgradient Algorithm

    Subgradient是一种可以优化不可微的凸函数的方法. 首先回顾凸函数的定义: $f(y) \geq f(x) + \nabla f(x)^T(y-x), all \hspace{2 pt} x, ...

  7. 如何让js不产生冲突,避免全局变量的泛滥,合理运用命名空间

    为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现. 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直 ...

  8. 对象与Byte数组相互转化工具方法

    /** * 对象转byte * @param obj * @return */ private byte[] ObjectToByte(Object obj) { byte[] bytes = nul ...

  9. NPM私有服务器架设 FOR CentOS

    确保计算机能够连接互连网. 一.安装 Couchdb1.6 1.(CentOS 6.7)如果版本低于6.7请使用下面命令更新系统库. yum update 2.使用下面命令安装依赖库 yum inst ...

  10. Android开发环境搭建相关文章列表(转载)

    Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1, ...