littlebookboy / laravel-request-recorder
帮助您轻松记录每个请求和响应信息。
v1.4.1
2021-06-26 06:30 UTC
README
说明
记录器部分,每次客户端发送请求,通过api路由时,将内容信息记录到数据库中。允许客户端自定义请求和响应的X-Correlation-ID,若自定义的X-Correlation-ID与数据库冲突,则响应会设置为409表示冲突。响应部分,是系统完成请求处理后,产生响应,才将此内容写入数据库。
安装
composer require littlebookboy/laravel-request-recorder
注册服务提供者
LittleBookBoy\Request\Recorder\RequestRecorderServiceProvider::class,
发布迁移
php artisan vendor:publish --provider="LittleBookBoy\Request\Recorder\RequestRecorderServiceProvider"
创建数据表
php artisan migrate
用法
设置api路由,例如请求搜索指定id用户
Route::get('user/{id}', 'UserController@show');
新增控制器
php artisan make:controller UserController
对应控制器 UserController
public function show()
{
return collect([
'name' => 'littlebookboy',
'saying' => 'Hello Recorder',
])->toJson();
}
记录开关/path/to/project/config/request-recorder.php
,enabled false
表示关闭记录器
'enabled' => false,
若要变更记录分组可设置group
,设为api
表示请求从api route进来都会被记录
'group' => 'api'
排除
实际中,有时需要让系统排除某些request不要写入,本套件提供了两种排除记录的方式
- 排除指定http method,您可以在config中设置
except
,表示要记录除了这些方法之外的请求,可设置的方法有'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'
,例如设置了GET
,系统将忽略记录所有get请求 - 排除指定route name with http code,您可以在config中设置
skip_routes
,将经过命名的路由设置到route_name
,并选择要过滤的状态码,若要全部过滤,可填写*
或留空
配置示例
/**
* - enabled : true or false
* - group : route middleware group name
* - except : 僅記錄除了這些方法之外的請求, 'GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'
* - skip_routes : 僅記錄除了這些路由之外的請求, 也可限定只排除該路由的某些 rsponse http code
*/
'recorder' => [
'enabled' => true,
'group' => 'api',
'except' => ['GET'],
'skip_routes' => [
[
'route_name' => 'route.name.1',
'http_code' => ['201']
],
[
'route_name' => 'route.name.2',
'http_code' => ['409', '422']
],
[
'route_name' => 'route.name.3',
'http_code' => ['*']
]
]
]
表
记录数据