【CI 框架】CI 框架編寫 REST API 小記

一、地址接收參數

地址參數的兩種形式

(1)/users/{user_id}php


編寫時候,須要在 /application/config/routers.php 中增長路由指向(這裏的user_id是純數字):json


$route['users/(:num)']='users/user_id/$1';

而後在名爲 users 的 controller中,api


<?php
class Users extends CI_Controller {
	public function user_id($id){
		// 這裏的 $id 就是地址上傳的 {user_id} 參數了
	}
}
?>


(2)/users?group_id = {group_id}app


這裏就用普通的 $_GET['group_id'] 便可取到參數
curl



二、接收傳遞的方法,

REST API 中有 POST,GET,PUT和DELETE 等方法url

須要接收傳遞過來的方法加以判斷

假設有這兩個接口,

刪除用戶: DELETE /users/{user_id}code

修改用戶: PUT /users/{user_id}
router


用到 1 中提到的router的修改,而且在controller中能夠這樣判斷接口


public function user_id($id){
	$method = $_SERVER['REQUEST_METHOD'];

	if($method == 'DELETE'){
		// delete user
	}else if($method == 'PUT'){
		// update user
	}else{
		// wrong method
	}
}


三、接收在body中傳過來的參數路由


好比這樣一個登陸接口,就須要在body中傳name和password參數:

curl -kis 'http://api.example.com/v1/login' -d '{"name":"admin","password":"000000"}'


經過這個方法能夠拿到body中的內容

$data_str = file_get_contents('php://input');
$data_arr = json_decode($data_str,true);

而後經過 $data_arr['name'],$data_arr['password'] 分別能夠訪問到



四、返回


一般

GET對應的返回是200,500等

POST、PUT對應的返回是201,500等

DELETE對應的返回是204,500等


header("HTTP/1.1 200 OK");
header("Content-type: application/json");
echo json_encode($return);


header("HTTP/1.1 201 Created");
header("Content-type: application/json");
echo json_encode($return);


header("HTTP/1.1 201 Updated");
header("Content-type: application/json");
echo json_encode($return);


header("HTTP/1.1 204 No content");
header_remove("Content-type"); 
相關文章
相關標籤/搜索