Uxf框架引入Rest控制器特性
引入Rest风格接口的特性,主要是为了适应平台化和移动化开发的需要。
移植自ThinkPHP项目的RestAction。
REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST提出了一些设计概念和准则:
- 网络上的所有事物都被抽象为资源(resource);
- 每个资源对应一个唯一的资源标识(resource identifier);
- 通过通用的连接器接口(generic connector interface)对资源进行操作;
- 对资源的各种操作不会改变资源标识;
- 所有的操作都是无状态的(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控制器特性的更多相关文章
- yii框架中关于控制器中filter过滤器和外部action的使用
在yii框架中,控制器的过滤器分为执行前和执行后,这里举例是在执行控制器前的过滤. 需要在components/文件夹下定义公共的TestAction.php文件,并且实现run()方法.这个acti ...
- BootStrap框架引入文件
bootstrap -- 框架 引入需要的 这是外网的------************************************************************* < ...
- 第一零二天上课 PHP TP框架 引入文件路径问题和调用验证码的方式
外部文件引入到视图模板的方式 1,将外部文件放在Public文件夹下,用load标签引入 2,在模板出书写引入代码(方法有很多,只有以下方法不容易出问题) <load h ...
- tp框架引入第三方sdk的经验总结
tp框架开发常用到第三方的接口,这时候需要引入第三方的sdk.例如:微信扫码支付sdk,阿里大于的淘宝sdk等等 首先到官网上下载对应php的sdk文件,通常会有至少一个实例代码. 1 新建一个控制器 ...
- 基于TP框架的ThinkCMF,控制器display方法源码分析
昨天在写代码的时候,看见写了无数次的模版渲染方法:$this->display(),突然很想弄清楚它是如何实现的. 今天不忙,就分析了一下. class TestController exten ...
- Tp框架 之对控制器的一些操作等
在浏览器中输入tp框架入口文件的地址,如图 要注意,localhost/后面跟的是www的下一级,tp文件的上一级,因为我直接把tp文件做成了www目录的下一级,所以我写的地址localhost后面跟 ...
- ThinkPHP框架之空控制器
HOME代表的是模块 前台可以用Home 后台用Admin Model View Controller 统称为MVC Model 是数据模型 主要是和数据库打交道的 View代表显 ...
- TinkPHP框架学习-02控制器基本操作
1-----创建控制器 2-----访问视图页面 3-----注册变量到视图页面 4-----获取表单数据 一 在Home模块下创建控制器 举例: 目录tp/Application/H ...
- Spring框架引入
Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装.类型转换.文件上传.效验… Hibernate, 持久层的解决方案: 可以做到, 把对 ...
随机推荐
- Reflector反编译.NET文件后修复【转】
反编译后的工程文件用VS2010打开后,在打开窗体时会出现一系列错误提示: 第一种情况: “设计器无法处理第 152 行的代码: base.AutoScaleMode = AutoScaleMode. ...
- jquerymobile标签-属性手册
Button data-role="button" data-corners true | false data-icon home | delete | plus | arr ...
- Spark源码系列(三)作业运行过程
作业执行 上一章讲了RDD的转换,但是没讲作业的运行,它和Driver Program的关系是啥,和RDD的关系是啥? 官方给的例子里面,一执行collect方法就能出结果,那我们就从collect开 ...
- iOS开发之身份证号码校验
// // Card.h // THCStore // // Created by Mac on 15/7/15. // Copyright (c) 2015年 Mac. All rights ...
- java之对象转型2
public class TestCasting2{ public static void main(String args[]){ TestCasting2 test2= new TestCasti ...
- 利用SSIS发送邮件
璎Nicole珞 博客园 闪存 首页 新随笔 联系 管理 订阅 随笔- 15 文章- 0 评论- 0 SSIS 利用发送邮件服务 Send Email Task 1. 在SSIS中如何发送邮 ...
- struts2 hello world
注意:仅需要如下这些jar包,否则启动时会出错 commons-lang3-3.2.jar commons-logging-1.1.3.jarcommons-logging-api-1.1.jarfr ...
- android xml 常用控件介绍
android常用控件介绍 ------文本框(TextView) ------列表(ListView) ------提示(Toast) ------编辑框(EditText) ...
- C# 只启动一个实例完全解决方案
工作上经常会遇到"程序只能启动一个实例"这样的需求. 我想,这样的需求应该很普遍,所以没打算去动脑筋,去找谷歌问下就得了,用下来发现,不是这里不爽就是那里不行. 先说下我详细的几点 ...
- IIS Express魔法堂:解除localhost域名的锁定
一.前言 单点登录是通过域名从cookie中获取登录信息,然后再根据cookie的键值对获取用户信息.但由于通过IIS Express调试应用时默认使用localhost作为域名且无法直接修改,导 ...