亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP中Restful api 錯誤提示返回值實現思路

2024-05-04 23:44:59
字體:
來源:轉載
供稿:網友
REST是Representational State Transfer的縮寫,翻譯為“表現層狀態轉化”。表現層其實就是資源,因此可以理解為“資源狀態轉化”。接下來通過本文給大家介紹Restful api 錯誤提示返回值實現思路,感興趣的朋友一起學習吧
 

RESTful架構是一種流行的互聯網軟件架構,它結構清晰,符合標準,易于理解,擴展方便。

REST是Representational State Transfer的縮寫,翻譯為“表現層狀態轉化”。表現層其實就是資源,因此可以理解為“資源狀態轉化”。

網絡應用上的任何實體都可以看作是一種資源,通過一個URI(統一資源定位符)指向它。

序言

不管是微博還是淘寶,他們都有自己的錯誤返回值格式規范,以及錯誤代碼說明,這樣不但手機端用起來方便,給人的感覺也清晰明了,高大上。遇到問題先找母本,大公司的規范就是我們參照的母本。為此,我仿照了淘寶的錯誤返回值格式,根據微博錯誤代碼制定的標準自定了自己的錯誤代碼,然后在Restful api 上進行測試。下面我將實現思路以及測試結果分享給大家。

實現思路

我利用抽象工廠模式去實現這樣的一個錯誤返回值。選擇這種模式是因為考慮到了這種模式可以提供一個創建一系列相關或相互依賴對象的接口,與我的需求很接近。

代碼分析

1、按這個路徑common/hint,我新建了個error文件夾存放我的錯誤提示程序文件。這文件夾中主要有這幾個文件:

2、Hint.php入口文件。定義一個抽象類,里邊只寫一個方法。

interface Hint {function Error($_errors,$code);}

3、Template.php 實現Hint這個接口。錯誤返回值的格式就在這里定義。

class Template implements Hint{function Error($_errors,$code) { if (empty($_errors)) {print_r(json_encode([]));} else { $errors['error']['name'] = 'Not Found';$errors['error']['message'] = $_errors;$errors['error']['error_code'] = $code; print_r(json_encode($errors));}}}

4、createMsg.php 再創建一個createMsg抽象類。將對象的創建抽象成一個接口。

interface createMsg { function Msg(); }

5、用FactoryMsg 類去實現createMsg接口。返回實例化的Template。

class FactoryMsg implements createMsg{function Msg() {return new Template;}}

6、ErrorMsg.php 給Template里邊的Error方法傳參。

class ErrorMsg {// 抽象工廠里的靜態方法public static function Info($_errors) { $Factory = new FactoryMsg;$result = strstr($_errors,Yii::t('yii','Not exist')); //數據不存在 20001$result1 = strstr($_errors,Yii::t('yii','Null')); //參數不能為空 20002$result2 = strstr($_errors,Yii::t('yii','Fail')); //新增、更新、刪除失敗 20003$result3 = strstr($_errors,Yii::t('yii','Not right')); //XX不正確 20004$result4 = strstr($_errors,Yii::t('yii','Robc')); //XX無權限 20005//數據不存在 20001if(!empty($result)){ $M = $Factory->Msg();$M->Error($_errors,'20001');die;}//參數不能為空 20002if(!empty($result1)){ $M = $Factory->Msg();$M->Error($_errors,'20002');die;}//新增、更新、刪除失敗 20003if(!empty($result2)){ $M = $Factory->Msg();$M->Error($_errors,'20003');die;}//XX不正確 20004if(!empty($result3)){ $M = $Factory->Msg();$M->Error($_errors,'20004');die;}//XX無權限 20005if(!empty($result4)){ $M = $Factory->Msg();$M->Error($_errors,'20005');die;}//默認類型 21000$M = $Factory->Msg();$M->Error($_errors,'21000');}}

7、調用方式。

use common/hint/error/ErrorMsg;ErrorMsg::Info(Yii::t('yii','failure'));

8、測試結果。

{"error": {"name": "Not Found","message": "操作失敗","error_code": "20003"}}

完成。整個實現過程我采用語言包的形式,這樣有利于后期多語言的切換。

常見問題

1、采用這種字符串模糊搜索很泛,無法達到具體錯誤類型返回對應具體代碼的要求。如有更好的建議,歡迎大家提議。

$result = strstr($_errors,Yii::t('yii','Not exist'));

2、實現過程中沒有考慮到今后多語言切換的問題,然后直接用傳統的方式傳提示語。比如:ErrorMsg::Info("操作失敗");這樣是無法實現多語言切換的。建議大家用語言包的方式傳參。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲第一区| 亚洲曰本av电影| 国产日韩欧美日韩大片| 亚洲国模精品私拍| 成人国产亚洲精品a区天堂华泰| 国产精品99久久久久久久久久久久| 91影视免费在线观看| 成人激情免费在线| 精品国产一区久久久| 久久精品国产电影| 成人羞羞国产免费| 色视频www在线播放国产成人| 欧美体内谢she精2性欧美| 日韩在线观看免费| 亚洲图片欧美午夜| 性视频1819p久久| 中文字幕精品av| 国产精品极品在线| 中文字幕国产精品久久| 亚洲天堂2020| 欧美亚洲第一区| 美女视频黄免费的亚洲男人天堂| 91免费看国产| 中文在线资源观看视频网站免费不卡| 在线播放精品一区二区三区| 亚洲日韩欧美视频一区| 亚洲国产精品电影| 国产999精品久久久影片官网| 91精品国产99| 国产精品久久久久秋霞鲁丝| 国产精品久久久久久久一区探花| 亚洲第一av在线| 久久精品视频导航| 欧美色播在线播放| 日本不卡视频在线播放| 色噜噜国产精品视频一区二区| 亚洲综合色激情五月| 日韩网站在线观看| 影音先锋日韩有码| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线观看精品| 国产精品第一视频| 国产偷亚洲偷欧美偷精品| 日韩在线资源网| 欧美伦理91i| 亚洲视频在线观看网站| 欧美一性一乱一交一视频| 国产欧美日韩免费看aⅴ视频| 欧美日韩国产综合视频在线观看中文| 国产精品ⅴa在线观看h| 欧美大片欧美激情性色a∨久久| 欧美日本啪啪无遮挡网站| 日韩精品免费在线视频观看| 欧美成人第一页| 98午夜经典影视| 午夜免费在线观看精品视频| 欧美国产日韩一区| 韩曰欧美视频免费观看| 97视频在线观看视频免费视频| 国产精品久久久精品| 成人在线播放av| 91国产视频在线| 欧美高清视频免费观看| 精品亚洲aⅴ在线观看| 国产一区二区丝袜高跟鞋图片| 欧美肥婆姓交大片| 亚洲的天堂在线中文字幕| 国产欧美 在线欧美| 亚洲丁香婷深爱综合| 中文在线资源观看视频网站免费不卡| 日韩**中文字幕毛片| 欧美人与性动交a欧美精品| 久久九九热免费视频| 欧美黑人巨大精品一区二区| 这里精品视频免费| 日韩欧美大尺度| 久久天天躁狠狠躁夜夜躁| 欧美亚洲国产日本| 国产精品一区电影| 精品视频在线播放免| 45www国产精品网站| 国产精品久久9| 美女啪啪无遮挡免费久久网站| 97国产suv精品一区二区62| 91久久精品国产| 日韩视频免费在线观看| 九九热在线精品视频| 精品一区二区三区四区在线| 欧美视频在线观看免费网址| 91免费在线视频网站| 欧美性黄网官网| 久久不射热爱视频精品| 欧美性色视频在线| 国产色综合天天综合网| 亚洲人成网站777色婷婷| 亚洲成人黄色网| 久久久久久久国产| 亚洲日本欧美日韩高观看| 久久免费视频在线观看| 91探花福利精品国产自产在线| 理论片在线不卡免费观看| 亚洲视频网站在线观看| 国产亚洲欧洲高清| 久久精品中文字幕免费mv| 色悠悠久久88| 国产精品久久激情| 亚洲三级av在线| 欧美日韩在线观看视频| 国产成人精品久久久| 欧美精品一区三区| 成人网在线免费观看| 国内精品久久久久久| 日韩av手机在线| 久久色免费在线视频| 久久影院在线观看| 亚洲成人精品久久久| 亚洲欧洲xxxx| 国产精品久久久久久中文字| 成人国产精品色哟哟| 中文字幕一区二区精品| 91网站免费看| 亚洲男女性事视频| 成人av资源在线播放| 久久精品99久久久久久久久| 欧美性生活大片免费观看网址| 欧美激情18p| 国产在线精品播放| 欧美激情亚洲另类| 欧美大片第1页| 欧美国产日本高清在线| 亚洲网站在线播放| 91精品视频免费观看| 亚洲人成五月天| 亚洲电影中文字幕| 日韩欧美黄色动漫| 日韩欧美亚洲范冰冰与中字| 日韩动漫免费观看电视剧高清| 亚洲图片欧美日产| 日韩亚洲综合在线| 精品国产拍在线观看| 性欧美亚洲xxxx乳在线观看| 国产精品第8页| 久久亚洲精品一区| 欧美国产激情18| 亚洲福利视频免费观看| 欧美韩日一区二区| 久久九九亚洲综合| 久久精品国产69国产精品亚洲| 精品露脸国产偷人在视频| 中文字幕亚洲综合久久筱田步美| 中文字幕日韩在线观看| 国产成人在线一区二区| 欧美国产亚洲精品久久久8v| 成人有码视频在线播放| 91香蕉电影院| 国产一区二区免费| 最新91在线视频| 日产精品99久久久久久| 九九久久综合网站| 日韩国产欧美精品在线| 久久精品成人欧美大片古装| 午夜精品视频在线| 欧美激情va永久在线播放| 国产欧美精品在线|