天天看点

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',

),

代码查看:

<a href="https://gitcafe.com/web3d/uxf/blob/master/upload/source/class/rest/rest_controller.php">https://gitcafe.com/web3d/uxf/blob/master/upload/source/class/rest/rest_controller.php</a>