欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

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

// 將所有的 Exception 全部交給 App\Exceptions\Handler 來(lái)處理
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;
}

再次訪問(wèn)接口:

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

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

相關(guān)文章

  • Python中pickle模塊的使用詳解

    Python中pickle模塊的使用詳解

    這篇文章主要介紹了Python中pickle模塊的使用詳解,python的pickle模塊提供了一個(gè)簡(jiǎn)答的持久化功能,可以將對(duì)象以文件的形式存放在磁盤上,pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化和反序列化,需要的朋友可以參考下
    2023-08-08
  • Python 實(shí)現(xiàn)中值濾波、均值濾波的方法

    Python 實(shí)現(xiàn)中值濾波、均值濾波的方法

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)中值濾波、均值濾波的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python facenet進(jìn)行人臉識(shí)別測(cè)試過(guò)程解析

    Python facenet進(jìn)行人臉識(shí)別測(cè)試過(guò)程解析

    這篇文章主要介紹了Python facenet進(jìn)行人臉識(shí)別測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)人生重開(kāi)模擬器小游戲講解

    Python實(shí)現(xiàn)人生重開(kāi)模擬器小游戲講解

    這篇文章主要介紹了Python實(shí)現(xiàn)人生重開(kāi)模擬器小游戲,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Python實(shí)現(xiàn)獲取視頻時(shí)長(zhǎng)功能

    Python實(shí)現(xiàn)獲取視頻時(shí)長(zhǎng)功能

    這篇文章主要介紹了Python如何實(shí)現(xiàn)獲取視頻時(shí)長(zhǎng)功能,可以精確到毫秒。文中的示例代碼簡(jiǎn)潔易懂,對(duì)我們的學(xué)習(xí)有一定的幫助,感興趣的可以了解一下
    2021-12-12
  • Python入門教程(三十八)Python的NumPy庫(kù)簡(jiǎn)介

    Python入門教程(三十八)Python的NumPy庫(kù)簡(jiǎn)介

    這篇文章主要介紹了Python入門教程(三十八)Python的NumPy庫(kù)簡(jiǎn)介,NumPy 是用于處理數(shù)組的 python 庫(kù),它還擁有在線性代數(shù)、傅立葉變換和矩陣領(lǐng)域中工作的函數(shù),需要的朋友可以參考下
    2023-05-05
  • 使用Python實(shí)現(xiàn)壓縮pptx的功能

    使用Python實(shí)現(xiàn)壓縮pptx的功能

    當(dāng)處理大型PPTX文件時(shí),其中包含許多高分辨率照片時(shí),文件大小可能會(huì)顯著增加,為了解決這個(gè)問(wèn)題,我們可以使用Python編程語(yǔ)言和python-pptx庫(kù)來(lái)壓縮PPTX文件中的照片,下面我們就來(lái)看看具體操作吧
    2024-02-02
  • pytorch:實(shí)現(xiàn)簡(jiǎn)單的GAN示例(MNIST數(shù)據(jù)集)

    pytorch:實(shí)現(xiàn)簡(jiǎn)單的GAN示例(MNIST數(shù)據(jù)集)

    今天小編就為大家分享一篇pytorch:實(shí)現(xiàn)簡(jiǎn)單的GAN示例(MNIST數(shù)據(jù)集),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python+django加載靜態(tài)網(wǎng)頁(yè)模板解析

    python+django加載靜態(tài)網(wǎng)頁(yè)模板解析

    這篇文章主要介紹了python+django加載靜態(tài)網(wǎng)頁(yè)模板解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python 如何引入同級(jí)包和模塊

    Python 如何引入同級(jí)包和模塊

    這篇文章主要介紹了Python 如何引入同級(jí)包和模塊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評(píng)論