0%

[PHP] Lesson 9 RESTful API介紹

RESTful API

Wiki解釋

API 與 RESTful API

HTTP Method

  • GET
  • POST
  • PUT
  • DELETE

HTTP 狀態碼

  • 2xx = Success(成功)
  • 3xx = Redirect(重定向)
  • 4xx = User error(客戶端錯誤)
  • 5xx = Server error(伺服器端錯誤)

網址導向 .htaccess

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RewriteEngine on

# 檢測網址狀態是否為檔案或目錄
# RewriteCond %{REQUEST_URI} !-f
# RewriteCond %{REQUEST_URI} !-d

# 檢測網址的是否為檔案或目錄,
# 如果不是檔案或目錄的話,則執行後面的重寫rule ,如
# 果是檔案或目錄的話,則不映射
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# 設定條件及映射路徑到index.php
# RewriteRule ^(.*)$ index.php?path=$1 [NC,L,QSA]
RewriteRule ^(.*)$ index.php [NC,L,QSA]

PHP相關函式

  • $_SERVER[‘REQUEST_URI’]
  • $_SERVER[‘REQUEST_METHOD’]

RESTful API 簡單實作(PHP)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$uri=$_SERVER['REQUEST_URI']; //取得路徑字串,至少會有"/"
$parseUri=explode("/",$uri); //使用"/"把字串拆成陣列

// 判斷陣列[1]是否為空,空表示路徑只到根目錄,回傳"/",
// 否則表示有東西,回傳路由字串
$route=(!empty($parseUri[1]))?$parseUri[1]:"/";

//根據請求的類型去執行不同的動作
switch($_SERVER['REQUEST_METHOD']){
case "POST":
//判斷路由字串來決定要做什麼事,或是導向其它路由

break;
case "GET":
//判斷路由字串來決定要做什麼事,或是導向其它路由

break;
case "PUT":
//判斷路由字串來決定要做什麼事,或是導向其它路由

break;
case "DELETE":
//判斷路由字串來決定要做什麼事,或是導向其它路由

break;
}