单独讲一下laravel跟Dingo结合编写api及api路由配置文件的作用
管理员 发布于 4年前   478
单独讲一下这个api配置文件(我的接口路由都写这里):
\vendor\wanglelecc\laracms-framework\routes\api.php
截取一些常用的配置项及其作用 做注释
$api = app('Dingo\Api\Routing\Router');
/** v1 Version API Routes */
$api->version('v1', [
//命名空间 定义我的api的控制器
'namespace' => 'Wanglelecc\Laracms\Http\Controllers\Api\V1',
'middleware' => 'serializer:array',
], function($api) {
//api分组编写 字面意思相同的写到一起 方面维护管理及控制
$api->group([
//中间件
'middleware' => 'api.throttle',
//接口频率限制 次数
'limit' => config('api.rate_limits.sign.limit'),
//接口频率限制 时间(这里是时间 分钟)
'expires' => config('api.rate_limits.sign.expires'),
], function($api){
#里面就是接口路由了
$api->post('verificationCodes', 'VerificationCodesController@store')->name('api.verificationCodes.store');# 短信验证码
$api->post('users', 'UsersController@store')->name('api.users.store');# 用户注册
$api->post('captchas', 'CaptchasController@store')->name('api.captchas.store'); # 图片验证码
$api->post('socials/{social_type}/authorizations', 'AuthorizationsController@socialStore')->name('api.socials.authorizations.store');# 第三方登录
$api->post('authorizations', 'AuthorizationsController@store')->name('api.authorizations.store');# 登录
$api->put('authorizations/current', 'AuthorizationsController@update')->name('api.authorizations.update');# 刷新token
$api->delete('authorizations/current', 'AuthorizationsController@destroy')->name('api.authorizations.destroy');# 删除token
$api->get('cardnewsarticles/{category_id}', 'CardNewsArticleController@index')->name('api.article.index');
$api->get('cardnewssearcharticles', 'CardNewsArticleController@search');
$api->get('loansnewsarticles/{category_id}', 'CardNewsArticleController@loansart')->name('api.article.loansart');
$api->get('loansnewssearcharticles', 'CardNewsArticleController@loanssearch');
# 获取区块内容
$api->get('blocks/{block_id}', 'BlockController@show')->name('api.block.show');
//评论
$api->post('comment', 'CommentController@comment')->name('api.comment.comment');
$api->get('commentpages', 'CommentController@commentpages')->name('api.comment.commentpages');
//up/dowm
$api->get('creditcardupdown', 'CommentController@creditcardupdown')->name('api.comment.creditcardupdown');
});
//第二个api分组了 可以对应不同的接口频率限制 access
$api->group([
'middleware' => 'api.throttle',
'limit' => config('api.rate_limits.access.limit'),
'expires' => config('api.rate_limits.access.expires'),], function($api) {
//AB版
$api->get('cbbab', 'DbgController@ab')->name('api.dbg.ab');
//小程序
$api->get('xcxkfstatus', 'XcxController@xcxkfstatus')->name('api.xcx.xcxkfstatus');
$api->get('topcarousel', 'XcxController@topcarousel')->name('api.xcx.topcarousel');
$api->get('centericon', 'XcxController@centericon')->name('api.xcx.centericon');
$api->get('xcxcentericonid', 'XcxController@xcxcentericonid')->name('api.xcx.xcxcentericonid');
$api->get('xcxkfxx', 'XcxController@xcxkfxx')->name('api.xcx.xcxkfxx');
$api->post('xcxkfxx', 'XcxController@xcxkfxx')->name('api.xcx.xcxkfxx');
//baidu
$api->get('bxcxkfxx', 'XcxController@bxcxkfxx')->name('api.xcx.bxcxkfxx');
$api->post('bxcxkfxx', 'XcxController@bxcxkfxx')->name('api.xcx.bxcxkfxx');
});
});
接口频率限制 (上面的分组接口频率限制 时间次数就是读这里)
配置文件路径:\config\api.php
/** 接口频率限制 */
'rate_limits' => [
// 访问频率限制,次数/分钟
'access' => [
'expires' => env('RATE_LIMITS_EXPIRES', 1),
'limit' => env('RATE_LIMITS', 600),
],
// 登录相关,次数/分钟
'sign' => [
'expires' => env('SIGN_RATE_LIMITS_EXPIRES', 1),
'limit' => env('SIGN_RATE_LIMITS', 10),
],
],
看到没有两个分组读的是 assess跟sign
assess:config('api.rate_limits.access.limit')
sign:config('api.rate_limits.sign.limit')
看一下效果:
1.默认每分钟600次
2.设置成每分钟400次
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
该博客于2020-12-7日,后端基于go语言的beego框架开发
前端页面使用Bootstrap可视化布局系统自动生成
是我仿的原来我的TP5框架写的博客,比较粗糙,底下是入口
侯体宗的博客
文章标签
友情链接