国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

官方限流組件的兩種異常正確處理方式

開發 前端
我們想要的HTTP狀態碼是429?,響應信息是每個手機號一天最多5條短信?。而這里是500,對應的錯誤信息是Internal Server Error。

概述

官方限流組件webman限流器,支持注解限流。支持apcu、redis、memory驅動。

文檔:https://www.workerman.net/doc/webman/components/rate-limiter.html

接口限流器

參考如下代碼

class IndexController
{
    /**
     * @param Request $request
     * @return Response
     */
    public function sendSms(Request $request): Response
    {
        $mobile = $request->get('mobile', '1388888888');
        Limiter::check($mobile, 5, 24*60*60, '每個手機號一天最多5條短信');
        return response_json('短信發送成功');
    }
}

成功響應

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
    "code": 0,
    "message": "短信發送成功",
    "data": []
}

異常響應

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

每個手機號一天最多5條短信

可以看出,限流器會拋出異常,返回的響應信息就是異常的message。并不是我們想要的統一的響應格式。

這里我們使用異常插件:https://www.workerman.net/plugin/16 接管框架的默認異常處理,保證響應格式統一。

修改配置文件config/exception.php

return [
    // 這里配置異常處理類
    '' => \Tinywan\ExceptionHandler\Handler::class,
];

再次請求接口,可以看到異常信息已經被統一處理了。

HTTP/1.1 500 Error
Content-Type: application/json;charset=UTF-8

{
 "code": 0,
 "msg": "Internal Server Error",
 "data": {}
}

但是還不是我們想要的限流異常信息,我們想要的HTTP狀態碼是429,響應信息是每個手機號一天最多5條短信。而這里是500,對應的錯誤信息是Internal Server Error。

接著繼續改造代碼。通過try-catch捕獲異常,然后返回自定義的響應信息。

use Tinywan\ExceptionHandler\Exception\TooManyRequestsHttpException;

class IndexController
{
    /**
     * @param Request $request
     * @return Response
     * @throws TooManyRequestsHttpException
     */
    public function sendSms(Request $request): Response
    {
        $mobile = $request->get('mobile', '1388888888');
        try {
            Limiter::check($mobile, 5, 24*60*60, '每個手機號一天最多5條短信');
        } catch (\Throwable $throwable) {
            throw new TooManyRequestsHttpException($throwable->getMessage());
        }
        return response_json('短信發送成功');
    }
}

再次請求接口,可以看到是我們想要的結果信息了。HTTP狀態碼是429,響應信息是每個手機號一天最多5條短信。

HTTP/1.1 429 Too Many Requests
Content-Type: application/json;charset=UTF-8

{
 "code": 0,
 "msg": "每個手機號一天最多5條短信",
 "data": {}
}

注解限流器

注解限流器使用起來更加簡單,只需要在控制器方法上添加注解即可。

use Webman\RateLimiter\Annotation\RateLimiter;

class IndexController
{
    /**
     * @param Request $request
     * @return Response
     */
    #[RateLimiter(3, 60, [IndexController::class, 'getMobile'], '每個手機號一天最多5條短信!')]
    public function sendSms(Request $request): Response
    {
        return response_json('短信發送成功');
    }

    /**
     * @desc 自定義key,獲取手機號,必須是靜態方法
     * @return string
     */
    public static function getMobile(): string
    {
        return request()->get('mobile','1388888888');
    }
}

請求接口,可以看到異常信息已經被統一處理了。

但不是我們想要的限流異常信息,我們想要的HTTP狀態碼是429,響應信息是每個手機號一天最多5條短信。而這里是500,對應的錯誤信息是Internal Server Error。

HTTP/1.1 500 Error
Content-Type: application/json;charset=UTF-8

{
 "code": 0,
 "msg": "Internal Server Error",
 "data": {}
}

繼續改造代碼。通過自定義異常類限流器的異常,然后返回自定義的響應信息。

這里修改注解的第五個參數,指定異常類為自定義的異常類 Tinywan\ExceptionHandler\Exception\TooManyRequestsHttpException:class

/**
 * @param Request $request
 * @return Response
 */
#[RateLimiter(3, 60, [IndexController::class, 'getMobile'], '每個手機號一天最多5條短信!', TooManyRequestsHttpException::class)]
public function sendSms(Request $request): Response
{
   return response_json('短信發送成功');
}

再次請求接口,可以看到是我們想要的結果信息了。HTTP狀態碼是429,響應信息是每個手機號一天最多5條短信。

HTTP/1.1 429 Too Many Requests
Content-Type: application/json;charset=UTF-8

{
 "code": 0,
 "msg": "每個手機號一天最多5條短信",
 "data": {}
}
責任編輯:武曉燕 來源: 開源技術小棧
相關推薦

2009-08-19 17:30:38

C#轉義字符

2009-08-17 17:28:23

C#轉義字符

2017-10-10 15:30:20

JavaScript

2011-07-08 10:57:24

主域控制器額外域控制器AD

2023-07-10 08:00:13

架構Rest返回值

2010-11-12 11:48:15

2021-03-31 09:11:27

URLErrorHTTPError

2010-08-31 09:31:58

Silverlight

2011-04-06 12:41:41

Java異常

2011-03-03 10:26:04

Pureftpd

2021-05-27 10:57:01

TCP定時器網絡協議

2010-11-24 08:54:33

2009-12-02 09:49:43

PHP Ajax亂碼

2010-10-21 16:24:18

sql server升

2009-06-25 13:43:00

Buffalo AJA

2023-03-29 13:06:36

2010-08-06 09:38:11

Flex讀取XML

2010-09-07 11:09:59

2010-05-21 11:07:55

MySQL 5 亂碼問

2023-11-09 08:14:07

時間窗口限流
點贊
收藏

51CTO技術棧公眾號

欧美一区二区网站| 天堂资源中文在线| 日韩av电影资源网| 欧美在线日韩精品| 色诱亚洲精品久久久久久| 久久av网站| 中文字幕日本精品| 国产美女被遭强高潮免费网站| 午夜亚洲一区| 成人字幕网zmw| av免费在线一区| 精品无人区乱码1区2区3区在线| 亚洲片在线观看| 黄色三级高清在线播放| 久久久久久夜| 国产日韩欧美夫妻视频在线观看| 免费av不卡在线观看| 亚洲va欧美va人人爽午夜| 国产日本在线| 91精品国产综合久久久久久 | 99re免费视频精品全部| 国产亚洲欧美日韩美女| 国模吧精品人体gogo| 中文字幕一区二区三区欧美日韩| 日韩欧美在线字幕| www亚洲人| 国产精品无av码在线观看| 成人18免费入口| 亚洲亚裔videos黑人hd| 国产精品普通话对白| 久久久精品国产亚洲| bbw在线视频| 亚洲精品天天看| 老司机在线视频二区| 国产精品久久久久永久免费观看 | 91手机视频在线观看| 综合天堂av久久久久久久| 真实国产乱子伦对白视频| 1区2区3区欧美| 亚洲麻豆精品| 久久99国产精品自在自在app| 尤物视频一区二区| 中文字幕成在线观看| 51色欧美片视频在线观看| 久久久亚洲欧洲日产| 黄页网站免费在线观看| 国产精品人成电影| 欧美综合视频在线观看| 久久久五月天| 成人在线观看黄| 久久精品亚洲麻豆av一区二区| 免费在线视频一级不卡| 中文字幕在线观看不卡| 四虎亚洲精品| 亚洲韩国欧洲国产日产av| 最新中文字幕在线| 欧美一区二区三区小说| 国色天香久久精品国产一区| 色综合天天视频在线观看| 国产精品免费在线播放| 久操视频在线| 欧美mv日韩mv亚洲| av污在线观看| 米奇777在线欧美播放| 日韩精品中午字幕| 日本福利视频| 91在线国产福利| 国产综合av一区二区三区| 人妖欧美1区| 亚洲r级在线视频| 日韩av资源在线| 国产一区二区在线视频你懂的| 欧美视频一区二区三区在线观看| 亚洲福利精品视频| 香蕉久久a毛片| 国产精品v欧美精品v日韩| 久久野战av| 成人免费在线播放视频| 亚洲人成77777| 一区二区三区国产好| 国产精品偷伦视频免费观看国产| 日韩在线卡一卡二| 日本www在线播放| 欧美aa在线视频| 超碰超碰在线观看| 色偷偷噜噜噜亚洲男人的天堂| 日本电影欧美片| 精品激情国产视频| 久久香蕉精品香蕉| 亚洲aa在线观看| 免费看日韩精品| 91热这里只有精品| 亚洲精品久久久久久久久久久久 | 蜜桃成人精品| hbad中文字幕| 91国产一区在线| 亚洲免费黄色| 亚洲小说欧美另类激情| 99re国产精品| 国产综合免费视频| 欧美日韩国产在线播放| 香艳视频网站| 亚洲图片欧美综合| 亚洲日本高清| 精品国产乱码久久久久久闺蜜| 欧美精品日日操| 欧美亚洲另类制服自拍| 日产午夜精品一线二线三线| 国产日韩欧美麻豆| 蜜桃视频在线播放| 日韩欧美激情一区二区| 欧美国产一区二区| 18网站在线观看| 青青久久aⅴ北条麻妃| 久久一综合视频| av在线www| 久久精品电影网| 国产最新精品免费| 动漫一区在线| 日韩美女视频在线观看| 日韩av在线播放中文字幕| 亚洲色精品三区二区一区| 91精品一区二区三区在线观看| 国内精品久久久久久久影视简单 | 尤物yw午夜国产精品视频明星| 欧美fxxxxxx另类| 国产色一区二区三区| 91蜜桃免费观看视频| 加勒比一区二区三区| 日韩不卡中文字幕| 欧美成人久久| 国产夫妻在线播放| 精品一区二区三区毛片| 日韩女在线观看| 97成人超碰视| 色综合一区二区日本韩国亚洲| 神马欧美一区二区| 亚洲精品国产美女| 亚洲国产精品欧美一二99| www.66久久| 欧美aaaa视频| 中文av资源在线| 麻豆精品国产| 日本在线不卡视频一二三区| 99精品在线免费视频| 久久精品视频免费播放| 亚洲精品欧美综合四区| 亚洲永久免费精品| 青春草免费在线视频| 国产乱码精品一区二区三区日韩精品| 欧美视频在线一区二区三区 | 四虎在线免费看| 欧美变态tickling挠脚心| 香蕉久久一区| 欧美影视资讯| 精品视频一区二区| 欧美亚洲愉拍一区二区| 欧美日韩福利| av在线小说| 国产欧美黑人| 欧美乱大交xxxxx潮喷l头像| 久久天天躁狠狠躁夜夜爽蜜月| 91小视频在线观看| 欧美精品首页| 91精品国产综合久久香蕉的用户体验 | 自产国语精品视频| 成人黄色小视频| 色婷婷综合久久久久中文一区二区| 日本在线视频一区二区三区| 国产原创一区二区| 92久久精品| 亚洲国产福利| 亚洲人吸女人奶水| 亚洲自拍另类综合| 国产一区二区| 国产精品久久久久久久龚玥菲 | 影音先锋久久精品| 青青在线视频| 国语对白在线视频| 成人一区二区三| 国产中文字幕第一页| 国产精品日韩一区二区| 久久视频在线直播| 一区二区成人在线| 国产调教精品| 成年在线观看免费人视频| 浮妇高潮喷白浆视频| 99久久精品久久久久久ai换脸| 欧美裸体男粗大视频在线观看| 日韩亚洲欧美综合| 色婷婷精品大在线视频| 亚洲乱码一区二区三区在线观看| 免费人成精品欧美精品| 国产成人黄色| 羞羞网站在线看| 国产不卡视频| 日产国产精品精品a∨| 中文字幕免费精品一区| 欧美日韩国产一区| 欧美日本一区二区|