mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
add brownout toggle
This commit is contained in:
parent
14cbe36be6
commit
ebe3bc9cc9
@ -6,6 +6,7 @@ APP_URL=http://localhost
|
||||
APP_DEPRECATION=false
|
||||
APP_DEPRECATION_DATE=2022-02-10T16:02:50+00:00
|
||||
APP_DEPRECATION_INFO=https://bit.ly/jikan-v3-deprecation
|
||||
APP_BROWNOUT=false
|
||||
|
||||
CACHE_DRIVER=file
|
||||
QUEUE_CONNECTION=redis
|
||||
|
40
app/Http/Middleware/BrownoutMiddleware.php
Normal file
40
app/Http/Middleware/BrownoutMiddleware.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Class BrownoutMiddleware
|
||||
* @package App\Http\Middleware
|
||||
*
|
||||
*
|
||||
*/
|
||||
class BrownoutMiddleware
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
if (env('APP_BROWNOUT') == false) {
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$time = date("Hi");
|
||||
$hour = (int) substr($time, 0, 2);
|
||||
$minutes = (int) substr($time, 2, 3);
|
||||
$isEvenHour = $hour % 2 == 0;
|
||||
|
||||
if ($isEvenHour && $minutes <= 15) {
|
||||
return response('', 410);
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@ -1 +0,0 @@
|
||||
<?php
|
@ -72,7 +72,8 @@ $app->routeMiddleware([
|
||||
'jikan-response' => App\Http\Middleware\JikanResponseHandler::class,
|
||||
'throttle' => App\Http\Middleware\Throttle::class,
|
||||
'etag' => \App\Http\Middleware\EtagMiddleware::class,
|
||||
'microcaching' => \App\Http\Middleware\MicroCaching::class
|
||||
'microcaching' => \App\Http\Middleware\MicroCaching::class,
|
||||
'brownout' => \App\Http\Middleware\BrownoutMiddleware::class
|
||||
]);
|
||||
|
||||
/*
|
||||
@ -116,9 +117,13 @@ $commonMiddleware = [
|
||||
'etag',
|
||||
'microcaching',
|
||||
'jikan-response',
|
||||
'throttle'
|
||||
'throttle',
|
||||
];
|
||||
|
||||
if (env('APP_BROWNOUT')) {
|
||||
$commonMiddleware[] = 'brownout';
|
||||
}
|
||||
|
||||
$app->router->group(
|
||||
[
|
||||
'prefix' => 'v3',
|
||||
|
@ -1,7 +1,20 @@
|
||||
<?php
|
||||
|
||||
$router->get('/', function () use ($router) {
|
||||
return response()->json([
|
||||
$body = [];
|
||||
$headers = [];
|
||||
|
||||
if (env('APP_DEPRECATION')) {
|
||||
$body['API_DEPRECATION'] = env('APP_DEPRECATION');
|
||||
$body['API_DEPRECATION_DATE'] = env('APP_DEPRECATION_DATE');
|
||||
$body['API_DEPRECATION_INFO'] = env('APP_DEPRECATION_INFO');
|
||||
$headers['X-API-Deprecation'] = env('APP_DEPRECATION');
|
||||
$headers['X-API-Deprecation-Date'] = env('APP_DEPRECATION_DATE');
|
||||
$headers['X-API-Deprecation-Info'] = env('APP_DEPRECATION_INFO');
|
||||
}
|
||||
|
||||
$body += [
|
||||
'NOTICE' => 'Please migrate to v4: https://docs.api.jikan.moe/',
|
||||
'Author' => '@irfanDahir',
|
||||
'Discord' => 'http://discord.jikan.moe',
|
||||
'Version' => JIKAN_REST_API_VERSION,
|
||||
@ -11,7 +24,11 @@ $router->get('/', function () use ($router) {
|
||||
'GitHub' => 'https://github.com/jikan-me/jikan',
|
||||
'PRODUCTION_API_URL' => 'https://api.jikan.moe/v3/',
|
||||
'STATUS_URL' => 'https://status.jikan.moe'
|
||||
]);
|
||||
];
|
||||
|
||||
return response()
|
||||
->json($body)
|
||||
->withHeaders($headers);
|
||||
});
|
||||
|
||||
$router->group(
|
||||
|
Loading…
x
Reference in New Issue
Block a user