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