摘要:背景在近期使用處理接口時(shí),發(fā)現(xiàn)本身中無法捕獲異常。后來查閱資料發(fā)現(xiàn),接管了請(qǐng)求的異常處理。導(dǎo)致無法自定義錯(cuò)誤返回,很是頭疼。最后在的找到了處理方法。
背景
在近期使用Dingo api處理接口時(shí),發(fā)現(xiàn)laravel本身appExceptionsHandler中無法捕獲異常。
后來查閱資料發(fā)現(xiàn),Dingo api接管了api請(qǐng)求的異常處理。導(dǎo)致無法自定義錯(cuò)誤返回,很是頭疼。
最后在dingo的issues找到了處理方法。
方法
創(chuàng)建一個(gè)自定義異常處理
繼承自DingoApiExceptionHandler,重寫handle方法 app/Exceptions/ApiHandler.php
json(["message" => "Unauthorized", "status_code" => 401], 401); } return parent::handle($exception); } }
創(chuàng)建一個(gè)服務(wù)容器
app/Providers/DingoServiceProvider.php
app->singleton("api.exception", function ($app) { return new ExceptionHandler($app["IlluminateContractsDebugExceptionHandler"], $this->config("errorFormat"), $this->config("debug")); }); } }
將服務(wù)容器添加到config/app.php中
... "providers" => [ ... AppProvidersDingoServiceProvider::class, ... ];
結(jié)語
參考issues鏈接:https://github.com/dingo/api/...
@shanginn 提供的方法會(huì)存在接口返回500,且沒有任何數(shù)據(jù)返回。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30926.html
摘要:前言由于在度娘找了半天根本一大堆版本,弄得我死去活來的,每個(gè)都試了一堆問題,到底你們做完有沒有總結(jié)過一次然后有幾個(gè)使用,完全不行啊,太監(jiān)版不是我想要的。后來,終于找到例子并實(shí)測(cè)成功。 前言 由于在度娘找了半天根本一大堆Copy版本,弄得我死去活來的,每個(gè)都試了一堆問題,到底你們做完有沒有總結(jié)過一次?然后有幾個(gè)使用lunmen+dingo api+jwt,完全不行啊,太監(jiān)版不是我想要的。...
摘要:我的博客中文文檔中使用輔助文章參考這篇文章基本就能搭建出環(huán)境,我使用的版本跟他一樣,不知道別的版本有啥大的區(qū)別,但是網(wǎng)上找的其他一些文章使用的是舊的版本,封裝的東西路徑可能不一樣,可能會(huì)保錯(cuò),有些文檔還說要手動(dòng)添加和,其實(shí)新版本不需要。 我的github博客:https://zgxxx.github.io/ dingo api 中文文檔: https://www.bookstack....
摘要:源碼使用本文使用的數(shù)據(jù)庫(kù)與基礎(chǔ)篇相同,故不再重復(fù)說明。使用的用法與之前的自定義用法類似,甚至更加簡(jiǎn)單。首先定義路由如果要查看路由,需要使用創(chuàng)建控制器需要使用這個(gè)。 源碼 使用 Dingo Api 本文使用的數(shù)據(jù)庫(kù)與基礎(chǔ)篇相同,故不再重復(fù)說明。 初始化 安裝 $ composer require dingo/api:1.0.x@dev 注冊(cè) /config/app.php provide...
摘要:在最近的開發(fā)開發(fā)項(xiàng)目中,我使用了這個(gè)第三方庫(kù)。是個(gè)很強(qiáng)大的庫(kù),但在開發(fā)的過程中,需要自定義響應(yīng)字段。剛開始使用時(shí),返回如下手機(jī)號(hào)格式不正確這是輸入字段驗(yàn)證錯(cuò)誤時(shí),返回的結(jié)果。尤其是,需要對(duì)每一個(gè)對(duì)象進(jìn)行新建,然后序列化。 在最近的開發(fā)開發(fā)項(xiàng)目中,我使用了Dingo/Api這個(gè)第三方Api庫(kù)。Dingo是個(gè)很強(qiáng)大的Api庫(kù), 但在開發(fā)的過程中,需要自定義響應(yīng)字段。 剛開始使用Ding/A...
摘要:學(xué)習(xí)了一段時(shí)間的小結(jié)一下最近做的小任務(wù)寫下來才知道好亂糟糟,還是以記錄學(xué)習(xí)的資料為主,寫的很糟糕,還需要再揣度多屢屢思路。 學(xué)習(xí)了一段時(shí)間的laravel,小結(jié)一下最近做的laravel小任務(wù),寫下來才知道好亂糟糟,還是以記錄學(xué)習(xí)的資料為主,寫的很糟糕,還需要再揣度多屢屢思路。20151103-16 源碼地址:https://github.com/dingyiming/xc-add...
閱讀 3160·2021-09-28 09:36
閱讀 3696·2021-09-08 09:45
閱讀 1812·2021-09-01 10:43
閱讀 3486·2019-08-30 12:44
閱讀 3353·2019-08-29 17:25
閱讀 1378·2019-08-29 11:03
閱讀 1998·2019-08-26 13:36
閱讀 703·2019-08-23 18:24