thinkPHP5使用restful api (一)
阿新 • • 發佈:2018-12-14
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工具(自己去百度下載)測試一下:
這樣就可以看到結果啦.