make(LoggerInterface::class); $limiter = $container->make(RateLimiterInterface::class); $router = new Router($container); // vedi nota: router può ricevere container // register routes (path without version prefix) $router->get('/users', 'UsersController@index'); $router->post('/users', 'UsersController@create'); $router->get('/example', 'ExampleController@test'); $request = new Request(); $response = new Response(); // Rate limiting by IP address $key = $_SERVER['REMOTE_ADDR'] ?? 'unknown'; if (!$limiter->allow($key)) { $retry = $limiter->getRetryAfter($key); header('Retry-After: ' . $retry); $logger->warning('Rate limit exceeded', ['ip' => $key]); $response->json(['error' => 'Too Many Requests'], 429); } $logger->info('Dispatching request', ['path' => $request->path(), 'method' => $request->method()]); $router->dispatch($request, $response);