1. 程式人生 > >thinkPHP5使用restful api (一)

thinkPHP5使用restful api (一)

THINKPHP5,當初這個框架釋出的時候就定義為為API而生,下面我們來看看怎麼用TP5來實現Restful Api的查詢(get)、增加(post)、修改(put)、刪除(delete)等server介面層吧。

REST(Representational State Transfer表述性狀態轉移)是一種針對網路應用的設計和開發方式,可以降低開發的複雜性,提高系統的可伸縮性。REST提出了一些設計概念和準則:

1、網路上的所有事物都被抽象為資源(resource); 2、每個資源對應一個唯一的資源標識(resource identifier); 3、通過通用的聯結器介面(generic connector interface)對資源進行操作; 4、對資源的各種操作不會改變資源標識; 5、所有的操作都是無狀態的(stateless)。

設定後會自動註冊7個路由規則,如下(官方文件):

標識 請求型別 生成路由規則 對應操作方法(預設)
index GET blog index
create GET blog/create create
save POST blog save
read GET blog/:id read
edit GET blog/:id/edit edit
update PUT blog/:id update
delete DELETE blog/:id
delete

1.新建api模組,架構如下:

在api/controller下新建一個配置檔案 config.php,程式碼如下:

<?php

return [
	'default_return_type' => 'json',
];

2.在api/controller下新建一個控制器test:

<?php
namespace app\api\controller;
use think\Controller;

class Test extends controller
{    
    public function index()
    {   
        //get 
        return [
        	'helloworld',
        	'helloworld2',
        ];
    }
    ////修改
    public function update($id = 0){
    	// echo $id;exit;
    	halt(input('put.'));
    	//return $id;
    }

    /**
     * post 新增
     * @return mixed
     */
    public function save(){
    	$data = input('post.');
    	return $data;
}

3.定義restful風格的路由規則,application\route.php

<?php

use think\Route;
//get 
Route::get('hello', 'api/test/index');
//修改
Route::put('test/:id', 'api/test/update');
//delete
Route::delete('test/:id', 'api/test/delete');

Route::resource('test', 'api/test');
/// x.com/test  post  => api test save

4.我們用apizza或者POSTMAN工具(自己去百度下載)測試一下:

這樣就可以看到結果啦.