php 如何在数据库中记录所有API请求和响应?[关闭]

oyt4ldly  于 2023-06-28  发布在  PHP
关注(0)|答案(1)|浏览(81)

**已关闭。**此问题正在寻求书籍、工具、软件库等的建议。它不符合Stack Overflow guidelines。目前不接受答复。

我们不允许问题寻求书籍,工具,软件库等的建议。您可以编辑问题,以便可以用事实和引用来回答。
昨天关门了。
Improve this question
我在Laravel lumen上有一个API项目,它已经用大约300个API URL构建。现在的要求是存储每个请求及其对数据库的响应,以跟踪API调用。有没有一个包或简短的解决方案来存储它,而不直接或逐个更改任何API函数?

zzwlnbp8

zzwlnbp81#

您可以使用中间件来 Package 所有请求。

class LoggerMiddleware
{
    public function handle($request, Closure $next)
    {
        try {
            $response = $next($request);

            $this->logSuccess($request, $response);

            return $response;
        } catch (Exception $ex) {
            $this->logFailure($request, $ex);
            throw $ex;
        }
    }

    public function logSuccess($request, $response)
    {
        // Log to database
    }

    public function logFailure($request, $exception)
    {
        // Log to database
    }
}

在Laravel中添加App\Http\Kernelroutes/*.phpApp\Providers\RouteServiceProvider中间件
在Lumen中,你应该像这样注册你的中间件:
https://lumen.laravel.com/docs/10.x/middleware#registering-middleware

// bootstrap/app.php

$app->middleware([
   App\Http\Middleware\LoggerMiddleware::class
]);

相关问题