成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > yii2 開發(fā)api接口時(shí)優(yōu)雅的處理全局異常的方法

yii2 開發(fā)api接口時(shí)優(yōu)雅的處理全局異常的方法

熱門標(biāo)簽:咸寧銷售電銷機(jī)器人系統(tǒng) 電銷機(jī)器人問門薩維品牌my 余姚電話機(jī)器人 百度地圖標(biāo)注偏差 開發(fā)地圖標(biāo)注類網(wǎng)站 外呼系統(tǒng)能給企業(yè)帶來哪些好處 百度地圖怎樣標(biāo)注圖標(biāo) 400電話蘭州申請請 廣東廣州在怎么申請400電話

前言:個(gè)人覺得,學(xué)習(xí)或溫習(xí)一套Web框架,在快速閱讀一遍文檔后,應(yīng)從路由,控制器,請求/響應(yīng)對象,數(shù)據(jù)模型(Logic,Dao,Entity),全局異常處理幾個(gè)方面下手,這幾項(xiàng)了解后,框架上手就游刃有余了。然后我比較喜歡在開工前整理好框架的全局異常處理,方便寫 api時(shí)錯(cuò)誤的統(tǒng)一響應(yīng)。

api接口的開發(fā)過程中,我們需要對用戶數(shù)據(jù)進(jìn)行嚴(yán)格的校驗(yàn),防止非法輸入對服務(wù)產(chǎn)生安全問題,在開發(fā)過程中,我比較喜歡即時(shí)的以拋出異常的方式中斷請求的處理,并以全局異常處理器格式化處理后統(tǒng)一返回給客戶端。

今天就把 yii2 自帶的全局異常處理器改寫至對 api 友好(yii2yii\web\HttpException默認(rèn)對 web 請求友好,都是以text/html的方式返回錯(cuò)誤描述,對api不友好,api當(dāng)然是json)。

注冊異常處理器

yii2也是以 controller/action 的方式定義一個(gè)異常處理器的,我們可以在 components=>errorHandler中自定義。

# config/web.php
'components' => [
  'errorHandler' => [
    'errorAction' => 'exception/handler'
  ]
]

異常處理器

定義相應(yīng)的異常處理器,app\actions\ErrorApiAction 繼承 yii\web\ErrorAction,可以拿到yii2為我們整理好的全局異常。

# controllers/ExceptionController.php
?php

namespace app\controllers;

use yii\web\Controller;

class ExceptionController extends Controller
{
  /**
   * 為 actionHandler 掛載獨(dú)立的 action
   * @return array
   */
  public function actions()
  {
    return [
      'handler' => [
        'class' => 'app\actions\ErrorApiAction',
      ]
    ];
  }
}

api友好的錯(cuò)誤異常處理器,這里我也只是簡單的把響應(yīng)格式改了一下,異常的上下文還是用yii2自帶的處理的。

#actions/ErrorApiAction.php
?php
/**
 * @author wangzhijian@styd.com
 * @date 2019-5-13 17:20:10
 * Api 全局錯(cuò)誤異常處理器
 */

namespace app\actions;

use Yii;
use yii\web\ErrorAction;
use yii\web\Response;

class ErrorApiAction extends ErrorAction
{
  public function run()
  {
    // 根據(jù)異常類型設(shè)定相應(yīng)的響應(yīng)碼
    Yii::$app->getResponse()->setStatusCodeByException($this->exception);
    // json 格式返回
    Yii::$app->getResponse()->format = Response::FORMAT_JSON;
    // 返回的內(nèi)容數(shù)據(jù)
    return [
      'msg' => $this->exception->getMessage(),
      'err' => $this->exception->getCode()
    ];
  }
}

異常實(shí)體

主要是簡單的把狀態(tài)碼的傳遞封裝一下,用更容易理解的類名來代理傳遞。
exceptions/HttpException.php

?php
/**
 * app 異?;A(chǔ)類
 */

namespace app\exceptions;

class HttpException extends \yii\web\HttpException
{
  public function __construct($message = null, $code = 0, \Exception $previous = null)
  {
    parent::__construct($this->statusCode, $message, $code, $previous);
  }
}

exceptions/HttpForbiddenException.php

?php
/**
 * 400 bad request
 */

namespace app\exceptions;

class HttpBadRequestException extends HttpException
{
  public $statusCode = 400;
}

exceptions/HttpUnauthorizedException.php

?php
/**
 * 401 unauthorized
 */

namespace app\exceptions;

class HttpUnauthorizedException extends HttpException
{
  public $statusCode = 401;
}

exceptions/HttpForbiddenException.php

?php
/**
 * 403 forbidden
 */

namespace app\exceptions;

class HttpForbiddenException extends HttpException
{
  public $statusCode = 403;
}

exceptions/HttpNotFoundException.php

?php
/**
 * 404 not found
 */

namespace app\exceptions;

class HttpNotFoundException extends HttpException
{
  public $statusCode = 404;
}

使用范例

在一些 service logic model 中根據(jù)需要即時(shí)拋出異常即可,上層控制器拿到的永遠(yuǎn)都是正常的返回?cái)?shù)據(jù),絕對的2xx響應(yīng)簇

throw new HttpBadRequestException("具體的非法描述", 4001);
throw new HttpUnauthorizedException("請認(rèn)證后訪問");
throw new HttpForbiddenException("無權(quán)訪問");
throw new HttpNotFoundException("請求資源不存在");

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

您可能感興趣的文章:
  • 實(shí)例講解如何在PHP的Yii框架中進(jìn)行錯(cuò)誤和異常處理
  • YII Framework教程之異常處理詳解

標(biāo)簽:臨沂 麗江 鷹潭 衡陽 巴彥淖爾 十堰 重慶 銅陵

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《yii2 開發(fā)api接口時(shí)優(yōu)雅的處理全局異常的方法》,本文關(guān)鍵詞  yii2,開發(fā),api,接口,時(shí),優(yōu)雅,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《yii2 開發(fā)api接口時(shí)優(yōu)雅的處理全局異常的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于yii2 開發(fā)api接口時(shí)優(yōu)雅的處理全局異常的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日韩不卡免费高清视频| 两根大肉大捧一进一出好爽视频| 性xx色xx综合久久久xx| 97伦理在线四区| 国产成人精品在线播放| 91精品国产高清自在线看超| 欧美激情综合色综合啪啪| 黄色aaaaaa| 亚洲一区二区免费视频| www.av视频在线观看| 国产视频网站一区二区三区| 日本毛片在线免费观看| 国产91色在线播放| 欧美性受xxx| 九九九热精品免费视频观看网站| 国产免费不卡av| 中文.日本.精品| 国产精品aaaa| 日本一区午夜艳熟免费| 69av视频在线播放| 日韩av电影免费观看| 91麻豆视频网站| 99在线精品免费视频| 国产精品永久久久久久久久久| 91精品国产综合久久精品| 欧美在线亚洲综合一区| 欧美福利在线| 日本丰满大乳奶| 亚洲精品中文在线| 在线免费观看国产精品| 亚洲欧美激情另类校园| 91在线码无精品| 久久一综合视频| 欧美亚洲人成在线| 国产精品视频白浆合集| 欧美日韩福利电影| 久久av在线| 美女扒开内裤让男人桶| 午夜精品成人在线视频| 日本成人在线不卡视频| 在线视频播放大全| 久久人妻无码aⅴ毛片a片app| 日产精品一区| 国产又黄又猛又粗又爽| 亚洲精品久久久蜜桃| 在线免费看黄av| 亚洲综合五月天婷婷丁香| 亚洲人成网站影音先锋播放| 亚洲成av人片在线观看无| 男人用嘴添女人下身免费视频| 日本一区二区在线视频观看| 樱花草涩涩www在线播放| 伦理欧美一区| 欧美精品日韩综合在线| 亚洲精品一线二线三线| 欧美成人四级hd版| 国产毛片av在线| 99久久婷婷国产综合精品电影| 视色,视色影院,视色影库,视色网| av网站在线免费观看| 国产精品久久久久久久泡妞| 日韩a在线看| 国产一区二区中文字幕免费看| 岛国电影中文在线| 国产情侣一区二区| 亚洲国产欧美日韩在线观看第一区| 国产igao激情在线入口| 久久在线观看视频| 免费看成人片| 久久精品国产精品亚洲色婷婷| 91丨porny丨探花| 青草热久免费精品视频| 国产精品羞羞答答在线| 91精品欧美福利在线观看| 欧美午夜理伦三级在线观看| 人妻丰满熟妇aⅴ无码| 亚洲国产日韩欧美在线| 四虎影视永久免费在线观看一区二区三区| 免费看一区二区三区| 亚洲精品久久区二区三区蜜桃臀| 性网爆门事件集合av| 午夜精品一区二区三区在线播放| 全部孕妇毛片丰满孕妇孕| 日韩毛片精品高清免费| 免费日韩一区二区| 日韩欧美专区在线| 男人操女人的视频网站| www四虎com| 禁网站在线观看免费视频| 国产成+人+综合+亚洲欧洲| 欧美一乱一性一交一视频| 久久精品中文字幕电影| 黄页免费在线| 欧美最大成人综合网| 91九色丨porny丨国产jk| 免费黄色在线看| 玖玖在线免费视频| 久久久99精品| 欧美视频一区二区在线| 无人区在线高清完整免费版 一区二| 制服丝袜网站| 国产精品裸体瑜伽视频| 91精品国产91久久久久久| 亚洲精品久久久久久下一站| 乱子伦一区二区| 日韩精品卡通动漫网站| av一本久道久久综合久久鬼色| 激情欧美日韩| 男人揉女人奶房视频60分| 四虎国产精品成人免费入口| 999久久久亚洲| 国产视频一区二区视频| 国产精品极品美女在线观看免费| 亚洲欧美久久久久一区二区三区| 亚洲成人国产| 免费xxxx性欧美18vr| 99国产精品免费| 色综合久久久888| 日韩成人精品在线| 99久久久免费精品| 日韩美女一级视频| 91香蕉视频免费看| 在线亚洲免费视频| 18禁网站免费无遮挡无码中文| 91精品免费| 国产一区二区色噜噜| 日本女优爱爱视频| 福利欧美精品在线| 欧美精品久久久久性色| 久久精品国产精品亚洲精品色| 国产精品综合一区二区三区| 国产特黄级aaaaa片免| 97久久超碰| 国产日韩欧美三级| 六月丁香婷婷久久| 国产a级黄色片| 亚洲校园激情春色| 精品日韩欧美| 亚洲欧美日韩精品久久亚洲区| 精品久久在线| 日韩av中文字幕一区二区三区| 午夜写真片福利电影网| 欧美精品一区二区三区视频| 天堂8中文在线最新版在线| 日韩爱爱小视频| 午夜精品久久久久久久96蜜桃| 中文字幕第31页| 色综合久久精品亚洲国产| 久久久久久久久久久免费| 国产青青在线视频| 成人性生交视频免费观看| 中文字幕97| 亚洲精品v日韩精品| 91se在线观看| 超碰97国产精品人人cao| 亚洲免费专区| 懂色av粉嫩av蜜臀av一区二区三区| 亚洲图区欧美| 可以直接看的av网址站| 日本午夜免费福利视频| 四虎永久成年免费影院| 一区二区三区国| 亚洲午夜精品一区 二区 三区| 久久久久久久久岛国免费| 亚洲第一色网站| 国产美女做爰免费视频软件| www.黄色网址| 亚洲国产日韩欧美在线99| 天天操夜夜操av| 成人一区二区三区视频在线观看| 九九三级毛片| 日本dhxxxxxdh14日本| 久久国产精品高清| 国产 日韩 欧美 成人| 日韩国产欧美三级| 4438全国亚洲精品在线观看视频| 国产偷激情在线| 久久免费看少妇高潮v片特黄| 日韩激情综合网| 亚洲黄色小视频在线观看| h视频在线观看免费完整版| 色精品一区二区三区| 日本xxxx裸体xxxx| 亚洲综合成人av| 日韩一区二区在线播放| 色老头在线视频| 九九热精品视频| 鲁鲁狠狠狠7777一区二区| http;//www.99re视频| 国产精品xxxav免费视频| 欧美日韩亚洲一二三| 九色成人免费视频| 欧美日韩国产色综合一二三四| 雨宫琴音一区二区在线| 久久五月婷婷丁香社区| 日韩中文视频免费在线观看| 一个色综合久久| 精品成人一区二区三区免费视频| 欧美h片在线观看| 国产精品久久久久久久午夜片| 一区中文字幕在线观看| 最近中文字幕免费| 欧美性xxxx69| 成人在线免费小视频| 精品人妻在线视频| 亚洲精品18p| 国产一级影视| 中文一区二区视频| 日韩制服诱惑| 奇米综合一区二区三区精品视频| 欧美成人资源| 日韩精品亚洲一区二区三区免费| www.九色在线| 国产精品亚洲综合色区韩国| 欧美经典一区二区三区| 成人黄色小视频在线观看| 日本一区二区三区播放| 一区二区三区**美女毛片| 久久激情视频免费观看| 久久综合九色综合97婷婷| eeuss一区| 在线观看二区| 秋霞午夜一区二区三区视频| 国产香蕉久久精品综合网| 不卡一区二区三区四区五区| 全亚洲最色的网站在线观看| 影音先锋人妻啪啪av资源网站| 91手机视频在线观看| 欧美日韩亚洲高清| 在线国产1区| juy有坂深雪中文字幕| 成码无人av片在线观看网站| 久久久久久久高潮| 在线视频资源站| 美女露胸视频在线观看| 奇米777日韩| 日本成人手机在线| 亚洲色图欧美制服丝袜另类第一页| 久久久久久国产精品日本| 91香蕉在线| 国产精品毛片一区二区在线看| 黄色网页免费在线观看| 精品伦理一区二区三区| 在线精品视频在线观看高清| 福利在线免费视频| 九九视频在线免费观看| 国产免费一区二区三区四区| 国产91ⅴ在线精品免费观看| 亚洲视频777| 7777女厕盗摄久久久| 中文字幕亚洲一区二区va在线| 国产自产高清不卡| 国产精品久久久久久av公交车| 91色porny蝌蚪| 久久久久久久少妇| 性网站在线看| 日韩在线不卡av| 亚洲人成电影网站色xx| 国产尤物一区二区| 国产一区91精品张津瑜| 国产精品99久久久久久人| av在线免费观看网| 男人亚洲天堂| 欧美二区在线视频| www.射射射| av网站在线观看免费| 久久人妻精品白浆国产| 日本久久精品视频| xxxxx69·hd| 91视频福利| 免费在线看污| 动漫av在线免费观看| 7777精品伊人久久久大香线蕉超级流畅| 亚洲人成网亚洲欧洲无码| 国产精品黑丝在线播放| 日韩在线激情视频| 成人激情视屏| 欧美成人第一区| 999国产在线视频| 国产精品午夜福利| 伊人一区二区三区| 国产做受高潮69| 国产成+人+日韩+欧美+亚洲| 少妇欧美激情一区二区三区| 污污网站在线| 国产免费一区二区三区四区五区| 免费中文字幕av| 3d动漫精品啪啪1区2区免费| 韩国中文字幕在线| 久久久精品人妻一区二区三区| 夜夜躁很很躁日日躁麻豆| 99久久综合国产精品二区| h视频在线免费| 999免费视频| 欧美一区二区三区四| 免费在线不卡av| 精品国产制服丝袜高跟| 91精品国产综合久久蜜臀| 黄色激情小视频| 黄色成人在线网址| 直接在线观看的三级网址| 国产黄色小视频在线观看| 日韩国产高清视频在线| 久久亚洲一区二区三区四区五区高| 国产绳艺sm调教室论坛| 182午夜在线观看| 韩国精品美女www爽爽爽视频| 日本手机在线视频| www.亚洲天堂网| 在线能看的av网址| 欧美一a一片一级一片| 中文字幕国产欧美| 日韩av资源在线播放| 日韩在线观看不卡| 尤物网站在线观看| 国产1区2区3区4区| 日韩福利视频| 午夜时刻免费入口| 国产成+人+日韩+欧美+亚洲| 日日夜夜精品网站| 国精产品99永久一区一区| 免费在线黄网站| 国产尤物视频在线观看| 91骚色在线| 国产精品17p| 日韩在线播放中文字幕| 久久久久国产精品无码免费看| 亚洲一区在线观看免费观看电影高清|