geniussystems-np/cache-middleware

1.0.1 2020-09-29 10:42 UTC

This package is auto-updated.

Last update: 2024-09-05 21:31:27 UTC


README

我们使用两个中间件进行缓存,一个用于从缓存中提供服务响应,另一个用于生成缓存。

  • ServeCachedResponse
    • 唯一的任务是如果可用,则从缓存中提供服务响应
    • 此中间件应在中间件栈中的认证之后
  • CacheReponse
    • 此中间件应通过检查缓存头分析响应的可缓存性
    • 如果响应可缓存,则应将响应缓存到配置的缓存存储(Redis)中
    • 目前,我们只使用 cache-control 指令来缓存响应

该包使用 Laravel Cache 来存储和提供服务响应。任何带有 cache-control 指令和 max-age 的响应都将根据 max-age 参数中定义的持续时间进行缓存。

使用 composer 安装包

composer require geniussystems-np/cache-middleware

包安装后,在 app/Http/Kernel.php 中启用中间件,并将其添加到所需的中间件组。

protected $middleware = [
        \App\Http\Middleware\TrustHosts::class,
        \App\Http\Middleware\TrustProxies::class,
        \Fruitcake\Cors\HandleCors::class,
        \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        .
        .
        \GeniusSystems\Http\Middleware\ServeCachedResponse::class,
        .
        .
        \GeniusSystems\Http\Middleware\CacheResponse::class,
  ];

ServeCacheResponse 应在认证中间件之后,因为它如果有响应则不会将请求传递到中间件栈中的其他中间件。以上代码假设您正在为所有路由启用 cache-middleware。对于特定路由,您需要将其添加到相应的组,并在路由中启用中间件。