restful api接口介紹和數據返回及異常處理

什麼是接口
api接口開發,其實和平時開發邏輯差不多;但是也有略微差異;
MVC開發模式:平時使用mvc開發網站的思路一般是都 由控制器 去 調用模型,模型返回數據,再由控制器把數據放到視圖中,展現給用戶;
api開發接口:使用控制器 去調用模型,模型返回數據,在有控制器 輸出 json格式字符串 或者 XML 字符串。
爲什麼要使用接口
1 提高工作效率,分工更加明確
2 徹底解放前端
3 局部性能提升
4 降低維護成本
5 可以使後臺能更好的追求高併發、高可用、高性能,使前端能更好的追求頁面表現、速度流暢、兼容性、用戶體驗等。
傳統接口
restful api接口介紹和數據返回及異常處理

restful 風格的api接口
restful api接口介紹和數據返回及異常處理
在laravel和thinkphp5.0中可以使用資源路由來實現。

api接口返回數據格式
status:業務的狀態嗎
message:提示信息
data:傳送的數據

api接口一定要返回這三種數據格式。可以使用xml,json。一般都是用json較多
我們可以將返回數據的方法寫到一個trait中或者寫到公共的控制器中
在trait中寫上success方法error方法以及封裝的result方法中,
restful api接口介紹和數據返回及異常處理
restful api接口介紹和數據返回及異常處理
restful api接口介紹和數據返回及異常處理
我們對於業務的狀態碼1000以內我們認爲是系統的問題,1000以上的狀態碼設置成業務邏輯錯誤。我們也可以把錯誤碼寫到一個服務類中如下:
restful api接口介紹和數據返回及異常處理
對於框架中的異常一般都是將異常放入到日誌或者展示成網頁,這對於接口開發是不行的,所以我要要自行處理自己的異常機制,我們可以修改框架中的頂級異常處理邏輯
我在Exception中建立一個ApiEeception以便於當我們的接口業務邏輯不正確,我們可以throw一個ApiException的異常如下:
restful api接口介紹和數據返回及異常處理
在頂級異常處理器中做了對ApiException的異常處理和laravel框架運行的異常處理
restful api接口介紹和數據返回及異常處理

如果是業務的異常就拋出ApiException異常http的狀態碼依然是200,如果是laravel的異常,http狀態碼爲500,開了debug調試顯示laravel框架的異常信息,未開debug調試顯示“未知錯誤”提示。

對於接口中可以拋出ApiException異常也可以調用$this->success()和$this->error()方法對接口進行返回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章