PHP 教程
REST(英文:Representational State Transfer,簡(jiǎn)稱REST) ,指的是一組架構(gòu)約束條件和原則。
符合REST設(shè)計(jì)風(fēng)格的Web API稱為RESTful API。它從以下三個(gè)方面資源進(jìn)行定義:
http://example.com/resources/
。本教程我們將使用 PHP(不用框架) 來創(chuàng)建一個(gè) RESTful web service,在文章末尾你可以下載本章節(jié)使用到的代碼。
通過本教程你將學(xué)習(xí)到以下內(nèi)容:
以下代碼是 RESTful 服務(wù)類 Site.php:
RESTful Services URI 應(yīng)該設(shè)置為一個(gè)直觀簡(jiǎn)短的資源地址。Apache 服務(wù)器的 .htaccess 應(yīng)設(shè)置好對(duì)應(yīng)的 Rewrite 規(guī)則。
本實(shí)例我們將使用兩個(gè) URI 規(guī)則:
1、獲取所有站點(diǎn)列表:
http://localhost/restexample/site/list/
2、使用 id 獲取指定的站點(diǎn),以下 URI 為獲取 id 為 3 的站點(diǎn):
http://localhost/restexample/site/list/3/
項(xiàng)目的 .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 文件中,我們通過設(shè)置參數(shù) 'view' 來獲取 RestController.php 文件中對(duì)應(yīng)的請(qǐng)求,通過獲取 'view' 不同的參數(shù)來分發(fā)到不同的方法上。RestController.php 文件代碼如下:
以下提供了 RESTful 的一個(gè)基類,用于處理響應(yīng)請(qǐng)求的 HTTP 狀態(tài)碼,SimpleRest.php 文件代碼如下:
以下是一個(gè) RESTful Web Service 處理類 SiteRestHandler.php,繼承了上面我們提供的 RESTful 基類,類中通過判斷請(qǐng)求的參數(shù)來決定返回的 HTTP 狀態(tài)碼及數(shù)據(jù)格式,實(shí)例中我們提供了三種數(shù)據(jù)格式: "application/json" 、 "application/xml" 或 "text/html":
SiteRestHandler.php 文件代碼如下:
接下來我們可以使用 Google Chrome 瀏覽器的 "Advance Rest Client" 作為 RESTful Web Service 客戶端來請(qǐng)求我們的服務(wù)。
實(shí)例中請(qǐng)求 http://localhost/restexample/site/list/ 地址,接收數(shù)據(jù)類似為 Accept: application/json
請(qǐng)求 id 為 3 的站點(diǎn) Runoob(小白教程),訪問地址為 http://localhost/restexample/site/list/3/。