TeamQuest Blog

restQL v3 – łatwiej będzie ogarnąć mikrousługi nawet w aplikacjach Node.js

restQL v3 – łatwiej będzie ogarnąć mikrousługi nawet w aplikacjach Node.js News!

Adam Golański , 16.07.2019 r.

Małe, jednofunkcyjne procesy, które łączymy, aby tworzyć aplikacje w architekturze zorientowanej na usługi, to dzisiaj najmodniejszy sposób budowania backendów (choć nie zawsze najmądrzejszy). Mówi się, że mikrousługi zapewniają wyższą skalowalność i ułatwiają rozwój, ale łatwo się już po pierwszym projekcie przekonać, że nieuniknioną ceną tego wszystkiego jest dodatkowa złożoność po stronie frontendu aplikacji. Ale wcale tak być nie musi. Najnowsza trzecia wersja restQL, języka zapytań dla mikrousług, pozwala znacząco uprościć frontendy oparte o takie modne backendy.

Opracowany przez B2W, największą firmę e-commerce w Ameryce Łacińskiej, restQL został stworzony w celu uniknięcia pewnych ograniczeń bardziej znanych frameworków do przeszukiwania danych, takich jak GraphQL. Od początku udostępniony na wolnej licencji MIT restQL zmniejsza złożoność zarządzania wywołaniami do wielu mikrousług, wykorzystując natywne buforowanie w przeglądarce dzięki bazowaniu na standardowych wywołaniach HTTP. Jest też dostępny dla każdego klienta, który obsługuje połączenia REST przez HTTP. Można z niego swobodnie korzystać w aplikacjach mobilnych napisanych w językach Swift czy Java/Kotlin.

restQL pozwalał zawsze na automatyczne równoległe wywoływania do oddzielnych zasobów, a teraz w najnowszej wersji dzięki nowemu operatorowi agregacji in, umożliwia otrzymanie odpowiedzi scalonej w uprzednio ustalony sposób.

Wcześniejsze wersje restQL obsługiwały tylko odpytywanie danych przy użyciu słowa kluczowego, co było zamieniane na żądanie HTTP GET. Wersja 3 dodaje standardowy zestaw metod HTTP dla operacji CRUD, w tym POST, PUT i DELETE – wykorzystuje się tu odpowiednio słowa kluczowe to, into oraz delete.

restQL v3 zapewnia zwiększoną niezawodność serwera stawianego między klientami a interfejsami programowania poszczególnych mikrousług. Może on teraz samodzielnie odciążać przeciążone komponenty, według zadanych w konfiguracji kryteriów. Jeśli wykryte zostanie osiągnięcie ustalonego progu opóźnień, niektóre wywołania otrzymają informację o braku pamięci masowej (HTTP 507), tak aby inne wywołania mogły zostać pomyślnie wykonane.

Oczywiście aplikacja musi mieć jakoś oprogramowane powtórne wypróbowywanie nieudanych odpowiedzi, aby taki wzorzec zwracania poprawnie działał. W tym celu twórcy restQL zalecają korzystanie z siatek usług (service meshes), dobrze współpracujących z nich dzięki wykorzystaniu protokołu HTTP i interfejsu REST.

Oprócz tych nowości należy spodziewać się nawet dwukrotnego zwiększenia wydajności, oraz co dziś szczególnie ważne, wydania pakietu npm dla aplikacji w node.js. Wszystkie niezbędne informacje i dokumentację znaleźć można na stronie projektu na GitHubie.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej