最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn)

 更新時(shí)間:2019年02月17日 10:22:47   作者:Romolo  
這篇文章主要介紹了Laravel+Dingo/Api 自定義響應(yīng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在最近的開發(fā)開發(fā)項(xiàng)目中,我使用了Dingo/Api這個(gè)第三方Api庫。

Dingo是個(gè)很強(qiáng)大的Api庫, 但在開發(fā)的過程中,需要自定義響應(yīng)字段。

剛開始使用Ding/Api時(shí),返回如下:

{
  "message": "422 Unprocessable Entity",
  "errors": {
    "mobile": [
      "手機(jī)號(hào)格式不正確"
    ]
  },
  "status_code": 422
}

這是輸入字段驗(yàn)證錯(cuò)誤時(shí),Dingo返回的結(jié)果。

這樣看上去沒什么問題。因?yàn)檫@邊 status_code 是比較規(guī)范的。對(duì)于 PHP 來說,直接 json_decode 之后,并沒有什么難辦的地方。但是對(duì)面安卓和 IOS 則是使用的強(qiáng)類型語言。尤其是 Java,需要對(duì)每一個(gè) Json 對(duì)象進(jìn)行新建,然后序列化。所以,這種格式不統(tǒng)一的返回結(jié)果,是無法接受的

解決方法: 我們需要將所有的異常信息歸總到一個(gè)地方,在AppServiceProvider的boot()方法中添加

// 將所有的 Exception 全部交給 App\Exceptions\Handler 來處理
app('api.exception')->register(function (Exception $exception) {
  $request = Illuminate\Http\Request::capture();
  return app('App\Exceptions\Handler')->render($request, $exception);
}); 

然后在App\Exceptions\Handler.php中的render()方法中:

$class = get_class($exception);
switch ($class) {
  case 'Dingo\Api\Exception\ValidationHttpException':
    if ($request->expectsJson())
      return $this->errorRespond($exception->getErrors()->first(), $exception->getStatusCode());
    break;

  default:
    if ($request->expectsJson())
      return $this->errorRespond('系統(tǒng)休息了', 500000);

    break;
}

再次訪問接口:

{
  "response_status_code": 422,
  "response_message": "請(qǐng)?zhí)顚懯謾C(jī)號(hào)",
  "data": []
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用python實(shí)現(xiàn)多維數(shù)據(jù)降維操作

    使用python實(shí)現(xiàn)多維數(shù)據(jù)降維操作

    今天小編就為大家分享一篇使用python實(shí)現(xiàn)多維數(shù)據(jù)降維操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中常用的GUI(圖形用戶界面)庫用法詳細(xì)介紹

    Python中常用的GUI(圖形用戶界面)庫用法詳細(xì)介紹

    GUI圖形用戶界面是一種允許用戶通過圖形元素(如圖標(biāo)、按鈕、窗口等)與電子設(shè)備進(jìn)行交互的用戶界面,下面這篇文章主要給大家介紹了關(guān)于Python中常用的GUI(圖形用戶界面)庫用法的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • pytorch 圖像預(yù)處理之減去均值,除以方差的實(shí)例

    pytorch 圖像預(yù)處理之減去均值,除以方差的實(shí)例

    今天小編就為大家分享一篇pytorch 圖像預(yù)處理之減去均值,除以方差的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python jieba 中文分詞與詞頻統(tǒng)計(jì)的操作

    Python jieba 中文分詞與詞頻統(tǒng)計(jì)的操作

    這篇文章主要介紹了Python jieba 中文分詞與詞頻統(tǒng)計(jì)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • PyCharm代碼格式調(diào)整方法

    PyCharm代碼格式調(diào)整方法

    今天小編就為大家分享一篇PyCharm代碼格式調(diào)整方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    這篇文章主要介紹了利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Python線性點(diǎn)運(yùn)算數(shù)字圖像處理示例詳解

    Python線性點(diǎn)運(yùn)算數(shù)字圖像處理示例詳解

    這篇文章主要為大家介紹了數(shù)字圖像處理基本運(yùn)算如何用Python詳細(xì)點(diǎn)運(yùn)算來處理數(shù)字圖像有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Python開發(fā)之利用re模塊去除代碼塊注釋

    Python開發(fā)之利用re模塊去除代碼塊注釋

    Python的re模塊主要是正則表達(dá)式的操作函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python開發(fā)之利用re模塊去除代碼塊注釋的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 解決Windows下PowerShell無法進(jìn)入Python虛擬環(huán)境問題

    解決Windows下PowerShell無法進(jìn)入Python虛擬環(huán)境問題

    這篇文章主要介紹了解決Windows下PowerShell無法進(jìn)入Python虛擬環(huán)境問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python實(shí)現(xiàn)二叉堆

    Python實(shí)現(xiàn)二叉堆

    二叉堆是一種特殊的堆,二叉堆是完全二元樹(二叉樹)或者是近似完全二元樹(二叉樹)。二叉堆有兩種:最大堆和最小堆。最大堆:父結(jié)點(diǎn)的鍵值總是大于或等于任何一個(gè)子節(jié)點(diǎn)的鍵值;最小堆:父結(jié)點(diǎn)的鍵值總是小于或等于任何一個(gè)子節(jié)點(diǎn)的鍵值。
    2016-02-02

最新評(píng)論

池州市| 柏乡县| 浦县| 黔西| 土默特右旗| 荣昌县| 运城市| 河源市| 弥渡县| 静乐县| 蛟河市| 石景山区| 台安县| 佳木斯市| 太湖县| 安远县| 黄浦区| 沙雅县| 云安县| 嘉禾县| 开原市| 西城区| 河曲县| 伊吾县| 姚安县| 宜黄县| 任丘市| 江安县| 淮阳县| 前郭尔| 成武县| 宁城县| 九龙坡区| 富阳市| 巴楚县| 汉寿县| 保德县| 三台县| 信丰县| 长顺县| 安平县|