larave增加api缓存系统

项目背景:最初是想给接口加缓存,但是不想每个接口添加缓存代码,就写了个统一的缓存系统。

技术方案:

  1. 本项目使用laravel框架
  2. 监听requestHanled事件写入缓存
  3. 添加apiCache中间件,对每个get访问进行拦截,检查是否有缓存,如果有,就读取缓存就返回,如果没有,就执行下一个中间件。

前置知识:

  1. laravel框架基础知识
  2. event(事件)和listener(监听器);
  3. middleware(中间件)
  4. cache

下面是代码实现:

1,首先在app/Providers/EventServiceProvider.php 里添加对应的event和listener。

use Illuminate\Foundation\Http\Events\RequestHandled;
*
*
*
protected $listen = [
    RequestHandled::class => [
        \App\Listeners\CacheApiResult::class
    ]
];

然后在项目的根目录执行
php artisan event:generate
这个命令用来生成event文件和listener文件;event用的是框架自带的RequestHandled事件,所以不会有改动,这个命令只会在app/Listeners文件夹下添加一个CacheApiResult.php文件。
文件内容如下

<?php

namespace App\Listeners;

use Cache;
use Illu
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要通过GeoServer REST API增加图层缓存格网,需要进行以下步骤: 1. 确定要添加缓存的图层名称和缓存类型(例如,瓦片缓存、WMS缓存等)。 2. 使用GeoServer REST API创建新的缓存规则。例如,在瓦片缓存的情况下,可以使用以下URL:`http://localhost:8080/geoserver/rest/workspaces/<workspace>/coveragestores/<store>/coverages/<layer>/caching`。 3. 在缓存规则中指定缓存策略、缓存方式和缓存的名称等参数。 以下是一个示例的GeoServer REST API请求,用于在WMS缓存添加一个图层缓存: ``` POST /geoserver/rest/workspaces/<workspace>/wmsstores/<store>/wmslayers/<layer>/caching HTTP/1.1 Host: localhost:8080 Content-Type: application/xml Authorization: Basic YWRtaW46Z2Vvc2VydmVy <GeoServerLayerCachingConfiguration> <enabled>true</enabled> <cacheName>myCacheName</cacheName> <timeToIdle>3600</timeToIdle> <timeToLive>86400</timeToLive> <cacheProvider> <name>EHCache</name> </cacheProvider> <gridSubsets> <gridSubset> <gridSetName>EPSG:4326</gridSetName> <extent> <coords> <double>90</double> <double>-180</double> <double>-90</double> <double>180</double> </coords> </extent> </gridSubset> </gridSubsets> </GeoServerLayerCachingConfiguration> ``` 在这个示例中,我们使用了WMS缓存,并且添加了一个名为`myCacheName`的缓存缓存的时间为一天(86400秒),缓存的空间范围是整个地球(EPSG:4326),并且启用了缓存。在实际请求中,需要将`<workspace>`、`<store>`、`<layer>`和其他参数替换为实际的值。 希望这个回答能够帮助您添加图层缓存格网。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值