API友好
新版ThinkPHP針對API
開發(fā)做了很多的優(yōu)化,并且不依賴原來的API模式擴展。
數據輸出
新版的控制器輸出采用Response
類統(tǒng)一處理,而不是直接在控制器中進行輸出,通過設置default_return_type
或者動態(tài)設置不同類型的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'=>'操作完成']);
}
}
核心支持的數據類型包括view
、xml
、json
和jsonp
,其他類型的需要自己擴展。
錯誤調試
由于API
開發(fā)不方便在客戶端進行開發(fā)調試,但ThinkPHP1
的Trace
調試功能支持Socket
在內的方式,可以實現遠程的開發(fā)調試。
設置方式:
'app_trace' => true,
'trace' => [
'type' => 'socket',
// socket服務器
'host' => 'slog.ThinkPHP.cn',
],
然后安裝chrome
瀏覽器插件后即可進行遠程調試,詳細參考調試部分。
文檔最后更新時間:2018-04-25 17:52:42
← Traits引入
未解決你的問題?請到「問答社區(qū)」反饋你遇到的問題