PHP 教程
REST(英文:Representational State Transfer,簡稱REST) ,指的是一組架構約束條件和原則。
符合REST設計風格的Web API稱為RESTful API。它從以下三個方面資源進行定義:
http://example.com/resources/
。本教程我們將使用 PHP(不用框架) 來創(chuàng)建一個 RESTful web service,在文章末尾你可以下載本章節(jié)使用到的代碼。
通過本教程你將學習到以下內容:
以下代碼是 RESTful 服務類 Site.php:
RESTful Services URI 應該設置為一個直觀簡短的資源地址。Apache 服務器的 .htaccess 應設置好對應的 Rewrite 規(guī)則。
本實例我們將使用兩個 URI 規(guī)則:
1、獲取所有站點列表:
http://localhost/restexample/site/list/
2、使用 id 獲取指定的站點,以下 URI 為獲取 id 為 3 的站點:
http://localhost/restexample/site/list/3/
項目的 .htaccess 文件配置規(guī)則如下所示:
# 開啟 rewrite 功能 Options +FollowSymlinks RewriteEngine on # 重寫規(guī)則 RewriteRule ^site/list/$ RestController.php?view=all [nc,qsa] RewriteRule ^site/list/([0-9]+)/$ RestController.php?view=single&id=$1 [nc,qsa]
在 .htaccess 文件中,我們通過設置參數 'view' 來獲取 RestController.php 文件中對應的請求,通過獲取 'view' 不同的參數來分發(fā)到不同的方法上。RestController.php 文件代碼如下:
以下提供了 RESTful 的一個基類,用于處理響應請求的 HTTP 狀態(tài)碼,SimpleRest.php 文件代碼如下:
以下是一個 RESTful Web Service 處理類 SiteRestHandler.php,繼承了上面我們提供的 RESTful 基類,類中通過判斷請求的參數來決定返回的 HTTP 狀態(tài)碼及數據格式,實例中我們提供了三種數據格式: "application/json" 、 "application/xml" 或 "text/html":
SiteRestHandler.php 文件代碼如下:
接下來我們可以使用 Google Chrome 瀏覽器的 "Advance Rest Client" 作為 RESTful Web Service 客戶端來請求我們的服務。
實例中請求 http://localhost/restexample/site/list/ 地址,接收數據類似為 Accept: application/json
請求 id 為 3 的站點 Runoob(小白教程),訪問地址為 http://localhost/restexample/site/list/3/。