Middle
Мидлвэр дар барномаҳо барои чӣ истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Middleware в вэб-аплікацыях — гэта прамежкавае праграмнае забеспячэнне, якое апрацоўвае HTTP-запыты і адказі. Яно знаходзіцца паміж вэб-серверам і асноўнай логікай прыкладання.
Асноўныя задачы middleware:
- Прадапрацоўка запыту:
- Аўтэнтыфікацыя і аўтарызацыя карыстальніка.
- Парсінг уваходных дадзеных запыту (JSON, XML і г.д.).
- Валідацыя дадзеных запыту.
- Лагіраванне запытаў.
- Дадаванне загалоўкаў да запыту.
- Постапрацоўка адказу:
- Мадыфікацыя адказу перад адпраўкай кліенту (напрыклад, дадаванне загалоўкаў).
- Сціск адказу.
- Апрацоўка памылак (выключэнняў).
- Кіраванне патокам выканання: Middleware можа перапыніць апрацоўку запыту і вярнуць адказ на ранняй стадыі (напрыклад, пры адсутнасці правоў доступу).
Перавагі выкарыстання middleware:
- Модульнасць: Падзел задач на асобныя, паўторна выкарыстоўваныя кампаненты.
- Гібкасць: Лёгка дадаваць або выдаляць функцыянальнасць, не змяняючы асноўную логіку прыкладання.
- Чытальнасць кода: Палепшэнне структуры прыкладання за кошт выдзялення скразных аперацый.
- Тэставанасць: Адзінкавыя middleware лягчэй тэставаць ізалявана.
У PHP-фреймворках (такіх як Laravel, Symfony, Slim) middleware часта рэалізуюцца ў выглядзе класаў, якія імплементуюць пэўны інтэрфейс.
<?php
// Прыклад структуры middleware (інтэрфейс)
interface RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface;
}
// Прыклад рэалізацыі middleware (аўтэнтыфікацыя)
class AuthenticationMiddleware implements RequestHandlerInterface {
public function handle(RequestInterface $request): ResponseInterface {
// Праверка аўтэнтыфікацыі
if (!isAuthenticated()) {
// Калі карыстальнік не аўтэнтыфікаваны, перапыняем выкананне і вяртаем памылку
return new Response(401, [], 'Unauthorized');
}
// Калі ўсё добра, перадаем запыт наступнаму апрацоўшчыку (ці асноўнай логіцы прыкладання)
return $this->nextHandler->handle($request);
}
}