gateway

An API Gateway acts as a single entry point for clients accessing multiple backend microservices, handling requests, routing them to appropriate services, and a...

Brama API (API Gateway) to serwer działający jako punkt wejścia dla wszystkich żądań klientów do usług backendowych. Znajduje się między aplikacjami klienckimi a usługami mikroserwisów lub monolitycznym backendem, abstrakcjonując leżącą u podstaw architekturę i upraszczając interakcje z klientem. Główne funkcje Bramy API obejmują routing żądań, transformację żądań/odpowiedzi, uwierzytelnianie i autoryzację, ograniczanie liczby żądań (rate limiting), buforowanie (caching), logowanie i monitorowanie. Centralizując te wspólne, przekrojowe zagadnienia, brama zapobiega ich powielaniu w wielu usługach backendowych, co prowadzi do czystszego, łatwiejszego w utrzymaniu kodu. Routing żądań kieruje przychodzące wywołania API do odpowiedniej usługi backendowej na podstawie ścieżki żądania, nagłówków lub innych kryteriów. Transformacja pozwala bramie modyfikować żądania lub odpowiedzi, na przykład poprzez zmianę formatów danych (np. z XML na JSON) lub agregację danych z wielu usług. Bezpieczeństwo jest kluczowym aspektem; brama może obsługiwać uwierzytelnianie (weryfikację tożsamości klienta) i autoryzację (określanie, czy klient ma uprawnienia do dostępu do żądanego zasobu), często poprzez integrację z dostawcami tożsamości lub usługami walidacji tokenów. Ograniczanie liczby żądań chroni usługi backendowe przed przeciążeniem zbyt dużą liczbą żądań, podczas gdy buforowanie może poprawić wydajność, serwując często żądane dane bezpośrednio z bramy. Ten wzorzec architektoniczny jest szczególnie rozpowszechniony w architekturach mikroserwisów, gdzie pomaga zarządzać złożonością licznych rozproszonych usług.

        graph LR
  Center["gateway"]:::main
  Rel_load_balancer["load-balancer"]:::related -.-> Center
  click Rel_load_balancer "/terms/load-balancer"
  Rel_internet_of_things_iot["internet-of-things-iot"]:::related -.-> Center
  click Rel_internet_of_things_iot "/terms/internet-of-things-iot"
  Rel_grid_computing["grid-computing"]:::related -.-> Center
  click Rel_grid_computing "/terms/grid-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Sprawdzenie wiedzy

1 / 1

🧒 Wyjaśnij jak 5-latkowi

Brama [API](/pl/terms/api) jest jak pomocna recepcjonistka w dużym budynku biurowym; kieruje gości (żądania Twojej aplikacji) do właściwego działu (usługi backendowej) i upewnia się, że tylko upoważnione osoby wchodzą, bez potrzeby, aby gość znał wewnętrzny układ.

🤓 Expert Deep Dive

Wzorzec Bramy API rozwiązuje problemy związane z zarządzaniem systemami rozproszonymi, zwłaszcza mikroserwisami, poprzez zapewnienie jednego, ujednoliconego interfejsu dla klientów. Kluczowe kwestie architektoniczne obejmują wybór między scentralizowaną bramą (pojedynczy punkt wejścia) a zdecentralizowanymi (bramy na usługę lub domenę). Scentralizowane bramy upraszczają interakcje z klientem i egzekwują spójne zasady, ale mogą stać się wąskim gardłem i pojedynczym punktem awarii. Zdecentralizowane bramy oferują lepszą skalowalność i izolację błędów, ale mogą prowadzić do powielania zasad. Typowe wzorce implementacji obejmują wzorzec Backend For Frontend (BFF), gdzie wyspecjalizowane bramy zaspokajają specyficzne potrzeby różnych typów klientów (np. mobilnych, webowych). Rola bramy w tłumaczeniu protokołów (np. REST na gRPC) i agregacji żądań jest kluczowa dla oddzielenia klientów od ewolucji usług backendowych. Implikacje wydajnościowe wynikają z dodatkowego skoku sieciowego i narzutu przetwarzania, co wymaga wydajnego routingu, buforowania i potencjalnie przetwarzania asynchronicznego. Egzekwowanie bezpieczeństwa na poziomie bramy, takie jak walidacja JWT lub introspekcja tokenów OAuth 2.0, jest kluczową najlepszą praktyką w zakresie bezpieczeństwa.

📚 Źródła