開發準備php
對於接口開發,建議採用單獨的項目部署,與後臺項目分離開來,緣由以下:thinkphp
1. 接口多用於查詢數據,對於數據提交的較少api
2. 接口的權限多采用token模式,後臺多采用RBAC控制訪問安全
3. 對於須要高度安全的接口,須要進行加密處理。thinkphp5
首先創建新的項目,配置二級域名 api.xjwblog.com 。對於 APP 客戶端開發,每每須要多版本的兼容,所以在服務端須要對接口進行兼容處理。post
利用 ThinkPHP5 的多級控制器實現版本的控制測試
如下咱們以首頁 banner 圖爲例:url
在 route.php 中加入如下代碼:spa
1
|
Route::get(
'/:version/banner'
,
'api/:version.Home/banner'
);
|
創建 api 模塊,建立 controller 控制器層和 interfaces 接口約束層(對要實現的基本接口進行約束)以及 Home 文件, 結構以下:
interfaces/Home.php 中代碼以下:
controller/Base.php 中代碼以下:
controller/Home.php 中代碼以下:
controller/v1/Home.php 中代碼以下:
controller/v2/Home.php 中代碼以下:
說明:
controller/Base.php 中存放一些公用的方法以及必要的驗證
controller/Home.php 中存放一些公用的方法以及無需進行版本驗證的接口
controller/v1/Home.php 中存放 v1 版本單獨所需的接口以及覆蓋父類 Home.php 中的接口進行個性化配置
controller/v2/Home.php 中存放 v2 版本單獨所需的接口以及覆蓋父類 Home.php 中的接口進行個性化配置
接下來利用 postman 進行測試: