天天看點

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>