Middle
Zašto se koristi middleware u aplikacijama?
sobes.tech АИ
Одговор од АИ
Middleware u veb aplikacijama je međuprocesorski softver koji obrađuje HTTP zahteve i odgovore. Nalazi se između veb servera i glavne logike aplikacije.
Glavni zadaci middleware-a:
- Prethodno obrađivanje zahteva:
- Autentifikacija i autorizacija korisnika.
- Parsiranje ulaznih podataka zahteva (JSON, XML itd.).
- Validacija podataka zahteva.
- Evidentiranje zahteva.
- Dodavanje zaglavlja zahtevu.
- Postobrada odgovora:
- Izmena odgovora pre slanja klijentu (npr. dodavanje zaglavlja).
- Kompresija odgovora.
- Rukovanje greškama (izuzecima).
- Upravljanje tokom izvršenja: Middleware može prekinuti obradu zahteva i vratiti odgovor u ranoj fazi (npr. ako nema prava pristupa).
Prednosti korišćenja middleware-a:
- Modularnost: Podela zadataka na nezavisne, ponovo upotrebljive komponente.
- Fleksibilnost: Lako dodavanje ili uklanjanje funkcionalnosti bez promene glavne logike aplikacije.
- Čitljivost koda: Poboljšava strukturu aplikacije izdvajajući operacije koje se prepliću.
- Testabilnost: Pojedinačni middleware je lakši za testiranje u izolaciji.
U PHP okvirima (kao Laravel, Symfony, Slim) middleware se često implementira u obliku klasa koje implementiraju određeni interfejs.
<?php
// Primer strukture middleware-a (interfejs)
interface RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface;
}
// Primer implementacije middleware-a (autentikacija)
class AuthenticationMiddleware implements RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface {
// Provera autentikacije
if (!isAuthenticated()) {
// Ako korisnik nije autentikovan, prekida se izvršenje i vraća greška
return new Response(401, [], 'Unauthorized');
}
// Ako je sve u redu, prosleđuje zahtev sledećem rukovaocu (ili glavnoj logici aplikacije)
return $this->nextHandler->handle($request);
}
}