Middle
K čemu slouží middleware v aplikacích?
sobes.tech AI
Odpověď od AI
Middleware v webových aplikacích je mezistupeň softwaru, který zpracovává HTTP požadavky a odpovědi. Nachází se mezi webovým serverem a hlavní logikou aplikace.
Hlavní úkoly middleware:
- Předzpracování požadavku:
- Autentizace a autorizace uživatele.
- Parsování přicházejících dat požadavku (JSON, XML atd.).
- Validace dat požadavku.
- Logování požadavků.
- Přidání hlaviček k požadavku.
- Postprocessing odpovědi:
- Úprava odpovědi před jejím odesláním klientovi (například přidání hlaviček).
- Komprese odpovědi.
- Zpracování chyb (výjimek).
- Řízení toku provádění: Middleware může přerušit zpracování požadavku a vrátit odpověď v rané fázi (například při absenci oprávnění).
Výhody používání middleware:
- Modularita: Rozdělení úkolů na samostatné, znovu použitelné komponenty.
- Flexibilita: Snadné přidávání nebo odstraňování funkcí bez změny hlavní logiky aplikace.
- Čitelnost kódu: Zlepšení struktury aplikace díky oddělení průřezových operací.
- Testovatelnost: Samostatné middleware je snazší testovat izolovaně.
V PHP rámcích (jako Laravel, Symfony, Slim) je middleware často implementováno ve formě tříd, které implementují určité rozhraní.
<?php
// Příklad struktury middleware (rozhraní)
interface RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface;
}
// Příklad implementace middleware (autentizace)
class AuthenticationMiddleware implements RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface {
// Kontrola autentizace
if (!isAuthenticated()) {
// Pokud uživatel není autentizován, přeruší se provádění a vrátí se chyba
return new Response(401, [], 'Unauthorized');
}
// Pokud je vše v pořádku, předá požadavek dalšímu zpracovateli (nebo hlavní logice aplikace)
return $this->nextHandler->handle($request);
}
}