(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);
四、返回
一般
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");