thinkphp5.0 API友好


新版ThinkPHP針對API開發做了很多的優化,並且不依賴原來的API模式擴展。

數據輸出

新版的控制器輸出采用Response類統一處理,而不是直接在控制器中進行輸出,通過設置default_return_type或者動態設置不同類型的Response輸出就可以自動進行數據轉換處理,一般來說,你只需要在控制器中返回字符串或者數組即可,例如如果我們配置:

'default_return_type'=>'json'

那么下面的控制器方法返回值會自動轉換為json格式並返回。

namespace app\index\controller; class Index { public function index() { $data = ['name'=>'thinkphp','url'=>'thinkphp.cn']; return ['data'=>$data,'code'=>1,'message'=>'操作完成']; } }

訪問該請求URL地址后,最終可以在瀏覽器中看到輸出結果如下:

{"data":{"name":"thinkphp","url":"thinkphp.cn"},"code":1,"message":"\u64cd\u4f5c\u5b8c\u6210"}

如果你需要返回其他的數據格式的話,控制器本身的代碼無需做任何改變。

支持明確指定輸出類型的方式輸出,例如下面指定JSON數據輸出:

namespace app\index\controller; class Index { public function index() { $data = ['name'=>'thinkphp','url'=>'thinkphp.cn']; // 指定json數據輸出 return json(['data'=>$data,'code'=>1,'message'=>'操作完成']); } }

或者指定輸出XML類型數據:

namespace app\index\controller; class Index { public function index() { $data = ['name'=>'thinkphp','url'=>'thinkphp.cn']; // 指定xml數據輸出 return xml(['data'=>$data,'code'=>1,'message'=>'操作完成']); } }

核心支持的數據類型包括viewxmljsonjsonp,其他類型的需要自己擴展。

錯誤調試

由於API開發不方便在客戶端進行開發調試,但ThinkPHP5Trace調試功能支持Socket在內的方式,可以實現遠程的開發調試。

設置方式:

'app_trace' => true, 'trace' => [ 'type' => 'socket', // socket服務器 'host' => 'slog.thinkphp.cn', ],

然后安裝chrome瀏覽器插件后即可進行遠程調試,詳細參考調試部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM