Middle
Milleks kasutatakse middleware'i rakendustes?
sobes.tech AI
Vastus AI-lt
Vahe- ja rakendustes vaheline tarkvara veebirakendustes — see on vaheline tarkvara, mis töötleb HTTP-päringuid ja vastuseid. See asub veebiserveri ja rakenduse põhiloogika vahel.
Vahe- ja rakenduse tarkvara peamised ülesanded:
- Päringu eelne töötlemine:
- Kasutaja autentimine ja autoriseerimine.
- Sissetulevate andmete analüüs (JSON, XML jne).
- Päringu andmete valideerimine.
- Päringute logimine.
- Päiste lisamine päringule.
- Vastuse järel töötlemine:
- Vastuse muutmine enne saatmist kliendile (näiteks päiste lisamine).
- Vastuse tihendamine.
- Vigade töötlemine (erandid).
- Jooksu voolu juhtimine: Vaheline tarkvara võib katkestada päringu töötlemise ja tagastada vastuse varases staadiumis (näiteks juurdepääsuõiguste puudumisel).
Vaheprogrammi kasutamise eelised:
- Moodulaarne: ülesannete jagamine eraldi, taaskasutatavate komponentidena.
- Paindlik: funktsionaalsuse lisamine või eemaldamine ilma põhiloogikat muutmata.
- Koodi loetavus: programmi struktuuri parandamine, üldiste toimingute eraldamisega.
- Testitavus: eraldi vaheline tarkvara on lihtne isoleeritult testida.
PHP raamistikus (näiteks Laravel, Symfony, Slim) realiseeritakse vaheline tarkvara sageli klassidena, mis implementeerivad kindlat liidest:
<?php
// Vaheprogrammi struktuuri näide (liides)
interface RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface;
}
// Vaheprogrammi realiseerimine (autentimine)
class AuthenticationMiddleware implements RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface {
// Autentimise kontroll
if (!isAuthenticated()) {
// Kui kasutaja ei ole autentitud, katkestame ja tagastame vea
return new Response(401, [], 'Unauthorized');
}
// Kui kõik on korras, edastame päringu järgmisele töötlejale (või põhiloogikale)
return $this->nextHandler->handle($request);
}
}