36 lines
925 B
PHP
36 lines
925 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Middleware\CorsMiddleware;
|
|
use App\Middleware\JsonResponseMiddleware;
|
|
use App\Middleware\RateLimitMiddleware;
|
|
use Slim\App;
|
|
use Slim\Middleware\ErrorMiddleware;
|
|
|
|
return function (App $app) {
|
|
// Parse JSON, form data and XML
|
|
$app->addBodyParsingMiddleware();
|
|
|
|
// Add CORS middleware
|
|
$app->add(new CorsMiddleware());
|
|
|
|
// Add JSON response middleware
|
|
$app->add(new JsonResponseMiddleware());
|
|
|
|
// Add rate limiting middleware
|
|
$app->add(new RateLimitMiddleware());
|
|
|
|
// Add routing middleware
|
|
$app->addRoutingMiddleware();
|
|
|
|
// Add error middleware
|
|
$displayErrorDetails = filter_var($_ENV['APP_DEBUG'] ?? 'false', FILTER_VALIDATE_BOOLEAN);
|
|
$logErrors = true;
|
|
$logErrorDetails = $displayErrorDetails;
|
|
|
|
$errorMiddleware = $app->addErrorMiddleware($displayErrorDetails, $logErrors, $logErrorDetails);
|
|
|
|
return $app;
|
|
};
|