
Wynajem magazynu w minuty zamiast dni - automatyzacja umów i płatności
Klient: Balticon S.A.
Branża: Logistyka / LogTech
Budowanie aplikacji na architekturze mikroserwisów przynosi wiele korzyści, lecz także stanowi wyzwanie w kwestii zarządzania komunikacją między poszczególnymi serwisami. Tu z pomocą przychodzi Feign - wysoce elastyczne narzędzie, które nie tylko upraszcza, ale także usprawnia ten proces.
CEO
01 maj 2024
Feign to prosta, lecz potężna biblioteka stworzona przez Netflix, która jest doskonałym narzędziem wsparcia w zarządzaniu mikroserwisami. Jej główne cele to uproszczenie kodu klienta HTTP oraz poprawienie jego czytelności poprzez ukrycie technicznych szczegółów dostępu do usług HTTP. Feign jest zintegrowany z narzędziami Spring Cloud i korzysta z interfejsów deklaratywnych do obsługi żądań sieciowych. Dzięki temu znacznie zwiększa produktywność, a przede wszystkim eliminuje potrzebę ręcznego pisania powtarzającego się kodu. Szereg dodatkowych opcji takich jak integracja z biblioteką Hystrix umożliwia obsługę awaryjnego rozwiązania w przypadku wystąpienia problemów z połączeniem.

Klient: Balticon S.A.
Branża: Logistyka / LogTech
Feign okazuje się być niezwykle przydatnym narzędziem w zarządzaniu mikroserwisami, głównie ze względu na swoje umiejętności deklaratywnej definicji usług HTTP. W mikroserwisach, gdzie http jest podstawowym protokołem komunikacji, zdolność do definiowania klientów HTTP bezpośrednio w interfejsach to niezwykle cenne narzędzie. Zapewnia lepszą czytelność i łatwość w utrzymaniu kodu, co jest niezwykle ważne w skalowalnych, złożonych systemach. Dodatkowo, Feign zapewnia integrację z wieloma klientami http i obsługą balansowania obciążeń, dzięki czemu praca z mikroserwisami staje się znacznie bardziej efektywna.
Doskonale sprawdza się w przypadkach, gdzie konieczna jest konsolidacja danych z różnych serwisów. Feign umożliwia tworzenie tzw. klientów deklaratywnych, co w efekcie skraca czas potrzebny na wprowadzanie zmian w strukturze komunikacji. Innym powszechnym zastosowaniem jest implementacja wzorców komunikacji między usługami, takich jak Circuit Breaker dla zwiększenia niezawodności systemu. W obszarze zarządzania autentykacją i uprawnieniami, Feign pozwala na prostą integrację z systemami jak OAuth2 czy JWT. Zakres jego użycia jest naprawdę szeroki i z powodzeniem może zaspokoić różnorodne potrzeby developerów pracujących z mikroserwisami.

Feign to biblioteka, którą można określić jako deklaratywny klient sieci Web. Najważniejsze cechy i funkcje tego narzędzia to przede wszystkim zintegrowane zasoby zdalne, które można obsługiwać jak lokalne interfejsy Javy. Umożliwia również przekształcanie błędów HTTP w wyjątki, bez konieczności pisania dodatkowego kodu, co znacząco upraszcza obsługę błędów. Kolejnym atutem jest obsługa zapytań HTTP Post i Get bez implementowania własnej logiki. Jest to szczególnie ważne dla programistów, którzy muszą zintegrować swoje aplikacje z innymi usługami, nie modyfikując jednocześnie swojego kodu. Dodatkowo, jest w pełni kompatybilny z narzędziem Ribbon do równoważenia obciążeń między mikroserwisami, co czyni go nieocenionym wsparciem w zarządzaniu rozległymi systemami opartymi o mikroserwisy.
Aby skonfigurować i używać Feign w swoim projekcie, zaczynamy od dodania odpowiedniej zależności do pliku pom.xml, jeżeli korzystasz z Mavena, bądź do build.gradle w przypadku Gradle. Następnie, tworzymy interfejs, który będzie zginał nasze zapytanie. Ten interfejs musimy opatrzeć adnotacją @FeignClient oraz wskazać nazwę usługi, do której chcemy się połączyć. W ciele interfejsu definiujemy metody odpowiadające naszym zapytaniom HTTP. Każda z tych metod powinna być opatrzona jedną z adnotacji @RequestMapping bądź adnotacjami żądań typu @GetMapping, @PostMapping, itd. Zdefiniowane metody mogą być następnie wywoływane w dowolnym miejscu naszej aplikacji. Ważne jest jednak, aby pamiętać o odpowiedniej konfiguracji strony klienta, bez której Feign nie będzie działał poprawnie.
FAQ
Blog
AWS Elastic Beanstalk to platforma hostingu aplikacji oferowana przez Amazon Web Services (AWS), która pozwala na łatwe i szybkie hostowanie aplikacji webowych. Dzięki wielu korzyściom, takim jak łatwa konfiguracja, automatyzacja i skalowalność, coraz więcej programistów i organizacji wybiera tę platformę jako swoją opcję hostowania aplikacji.
Turso to baza danych oparta na SQLite, która pozwala dać każdemu klientowi osobną bazę, pracować offline z późniejszą synchronizacją i wyszukiwać dane po znaczeniu. Na przykładzie jednej aplikacji pokazujemy, co Turso daje na kolejnych etapach rozwoju produktu i kiedy lepiej wybrać coś innego.
DuckDB to analityczna baza danych, która działa wewnątrz aplikacji, bez serwera i bez administratora. Wyjaśniamy, skąd bierze się jej szybkość, jak czyta pliki CSV i Parquet bez importu, gdzie sprawdza się w firmie, czego nie zastąpi i co zmienia zapowiadany tryb serwera w wersji 2.0.
Od marca 2026 r. darmowy Postman obsługuje tylko jednego użytkownika, a kolekcje zapytań do API wciąż są głównie w chmurze dostawcy. Wyjaśniamy, czym jest Bruno, ile kosztuje przejście i w jakich zespołach nie ma ono sensu.
ElectricSQL przesyła zmiany z bazy PostgreSQL prosto na ekrany użytkowników, bez ręcznego odświeżania i bez budowania własnej warstwy powiadomień. Tłumaczymy, jak działa ten silnik synchronizacji, jakie ma ograniczenia i w jakich projektach lepiej wybrać coś prostszego.
Express.js od 2010 r. jest domyślnym wyborem do budowy API w JavaScripcie. Hono robi to samo, ale działa też poza Node.js, nie ma żadnych zależności i jest wielokrotnie mniejsze. Sprawdzamy, gdzie ta różnica ma znaczenie, a gdzie lepiej zostać przy Expressie.