Wszystko, co musisz wiedzieć o API – część 1

Autor 9 grudnia, 20214 marca, 2022Integracja i przetwarzanie danych
API Application Programming Interface

API, czyli interfejs programowania aplikacji, pozwala integrować systemy z usługami i systemami firm trzecich, dzięki temu firmy nie muszą za każdym razem tworzyć własnych rozwiązań od podstaw. API szybko przeszło drogę od niszowego rozwiązania tworzonego przez kilku dużych rynkowych graczy do powszechnie wykorzystywanego narzędzia, które rewolucjonizuje rynek usług. Warto więc zdobyć podstawową wiedzę na ten temat.

Czym są API i dlaczego są tak popularne?

API (Application Programming Interface) to rodzaj oprogramowania, które stanowi połączenie pomiędzy różnymi niezależnymi systemami i oprogramowaniem. API stanowią łącznik pomiędzy nimi i podstawowy punkt interakcji, ułatwiają oprogramowaniu wzajemne udostępnianie danych i usług do różnych celów w stabilny i bezpieczny sposób.

Bez API dla swojego oprogramowania lub usługi, firmy nie mogłyby zintegrować usług ze swoimi systemami biznesowymi, ani z usługami firm trzecich, a więc byłyby one praktycznie niemożliwe do wykorzystania. API tworzą ogromne możliwości wymiany danych i integracji rozwiązań, dzięki temu stwarza nowe okazje do ich wykorzystania i rozwoju.

Jeszcze niedawno API były niszową technologią, tworzoną przez garstkę firm – pionierów w tej dziedzinie – jak Google, AWS czy Salesforce. Jednak ze względu na możliwości, jakie daje i fakt, że nowe technologie są wykorzystywane na szeroką skalę niemal w każdej branży i dziedzinie życia, API szybko wyszły z niszy. Obecnie prawie niezauważone działają w tle większości aplikacji wykorzystywanych na co dzień. Powszechne zastosowanie API zupełnie zmieniło sposób dostarczania i korzystania z usług.

Łatwość i bezpieczeństwo podłączenia poprzez API daje ogromne możliwości innowacji i przyspiesza rozwój nowoczesnych usług. Wszechobecne telefony komórkowe i inne urządzenia mobilne idealnie pasują do struktury API opartej o usługi. Dodatkowo wzmacniają rozwój interfejsów programowania aplikacji, jak i rynku usług, które mogą być dostarczane za ich pośrednictwem.

Coraz więcej firm i organizacji polega też na przetwarzaniu danych w chmurze (cloud computing) i infrastrukturze chmurowej. Rozwiązania API niesamowicie ułatwiają cały proces przenoszenia danych do chmury. Są niezbędne zarówno do początkowej migracji danych, jak i później – do ciągłej integracji z systemami.

Z punktu widzenia użytkownika końcowego Interfejsy API pozwalają na szybki i bezpieczny dostęp do usługi, z jakiej chcemy skorzystać. Z punktu widzenia klientów i partnerów biznesowych API to bezpieczny i stabilny sposób na korzystanie z zasobów innych firm.

API mogą przynieść ogromne korzyści również w działaniach zakrojonych na znacznie mniejszą skalę. W sytuacji, gdy w pełni funkcjonalne i skalowalne API można stworzyć w czasie krótszym niż jeden dzień, organizacjom opłaca się czasem wykorzystać API, które pozwoli zmodernizować i połączyć rozproszone starsze systemy w ramach jednego interfejsu – nawet na potrzeby tylko jednego projektu.

Obecnie na rynku panuje tak silna konkurencja, że wykorzystanie API nie jest tylko kwestią dostarczania usług wygodniej. „Być albo nie być” wielu organizacji może zależeć od tego, jak użyteczne i intuicyjne w użyciu będzie ich API. Firmy, które przyjęły podejście API-first, jak Salesforce, e-bay czy Amazon zupełnie odmieniły rynek usług.

Komponenty API

API jest zwykle definiowane jako zestaw procedur, protokołów i narzędzi do budowania aplikacji. Z perspektywy biznesowej, API można też jednak traktować jako produkt zbudowany z trzech oddzielnych komponentów funkcjonalnych:

  • Komponentu służącego do zarządzania bezpieczeństwem API
  • Interfejsu (zasobów, metod itp.)
  • Logiki biznesowej związanej wykorzystaniem każdego zasobu.

Istnieją również inne ważne elementy, takie jak monitoring, analityka i ochrona przed zagrożeniami. Jednak, w przypadku małych API, nie są one konieczne do tworzenia tego typu interfejsów.

Gdzie szukać i testować API?

W sieci są dostępne całe serwisy, na których można znaleźć i pobrać już gotowe API odpowiadające naszym potrzebom. Warto tu wymienić dwa z nich:

  • Rapidapi.com – jeden z największych serwisów gromadzących API – ma ich w swoich zasobach ponad 30 000. Z Rapidapi.com korzysta ponad 3 miliony deweloperów do wyszukiwania, testowania i łączenia się z API.
  • Postman API Platform – platforma do budowania, korzystania z i testowania API. Ułatwia współpracę, dzięki czemu pozwala tworzyć API jeszcze szybciej.

Wybierając gotowe API możemy kierować się branżą, w jakiej chcemy takie API wykorzystać, albo rodzajem użytkownika. W wymienionych serwisach znajdziemy również narzędzia do testowania API i sprawdzimy w paru prostych krokach, czy nasze połączenie będzie działać.

W jaki sposób migrować dane przy pomocy API

Migracja danych między systemami może być jednym z najtrudniejszych etapów integracji systemów i bardzo złożonym procesem. Największym wyzwaniem i czynnikiem, który ma największy wpływ na powodzenie tego procesu, jest dobre zrozumienie modeli danych, niezbędne, aby stworzyć właściwy model ich mapowania.

Na szczęście, jeśli wspomożemy się elastycznymi narzędziami do przetwarzania danych, kolejny krok – właściwa migracja danych – jest dość prosty, a stworzony proces jest powtarzalny i można go wykorzystywać wielokrotnie przy okazji kolejnych migracji.

Proces migracji danych jest ustrukturyzowany i można w nim wyróżnić kilka podstawowych kroków:

1

Podłączenie do API i jego autentykacja

Aby połączyć się z usługami i serwisami, trzeba ustalić mechanizm autentykacji – czy będzie to token, OAuth 2.0 czy może HTTP Basic. Różne serwisy interpretują różne standardy autentykacji nieco inaczej.

Złożoność zagadnienia autentykacji jest jedną z największych przeszkód w pracy z serwisami webowymi, na rynku są jednak narzędzia, które potrafią poradzić sobie z tym problemem.

2

Migracja kluczowych informacji

Przy migrowaniu danych ważne jest, jakie kluczowe czy podstawowe zestawy danych chcemy migrować.

Za kluczowe informacje można na przykład uznać największe czy najważniejsze kategorie danych, np.:
→ Kontakty znajdujące się w systemie CRM
→ Dane pracowników zgromadzone w systemie HR
→ Ilustracje i pliki wideo
→ Artykuły
→ Zgromadzone w systemie zlecenia na wykonanie pracy itp.

Chociaż krok ten wiąże się z migracją dużych zestawów danych o podobny atrybutach, trzeba jednak podjąć wiele drobnych i szczegółowych decyzji dotyczących tych danych np. ich relacji, hierarchii, metadanych, itp. Wszystko po to, żeby zaoszczędzić sobie poprawiania i redefiniowania tych elementów na danych już zmigrowanych do nowego systemu.

3

Stworzenie powtarzalnego procesu migracji danych

Główną różnicą pomiędzy ładowaniem danych poprzez wywołania API a bezpośrednią metodą odczytu i zapisu jest to, że z API ładowanie może łatwo stać się procesem, w którym kilka jego faz toczy się jednocześnie. Jeden fragment danych może zostać załadowany, a wynik (natychmiast dostępny poprzez API), może zostać użyty w następnej fazie migracji.

Taki sposób pracy wymaga jednak zmiany podejścia. Stworzenie powtarzalnego procesu migracji polega tu na zdefiniowaniu zestawu kroków, a nie na dokładnym odwzorowaniu docelowego zbioru danych.

4

Przestrzeń na zadania specjalne i ulepszenia

W procesie migracji danych warto jest pozostawić sobie przestrzeń na wprowadzanie zmian w pewnych procesach w firmie już w trakcie przeprowadzania migracji.

Oczywiście najlepiej byłoby, gdyby te ulepszenia czy zmiany znalazły się już w planie migracji, ale czasem nowe pomysły przychodzą już w trakcie wprowadzania zmian, np. migrując dane z systemu A do B, zdajemy sobie sprawę, że proces, który te dane wykorzystuje działałby lepiej, gdyby wprowadzić jeszcze dodatkowy krok.

To nie jest sytuacja idealna, ale czasem pewne potrzeby ujawniają się dopiero w momencie, gdy zacznie się pracę z danymi. Warto być na to przygotowanym i przewidzieć czas i zasoby na tego typu działania.

5

Obsługa błędów API

Pomimo niezaprzeczalnych i licznych zalet, również w przypadku API nie da się uniknąć błędów – po prostu zdarzają się i nic na to nie poradzimy. Mogą je wywołać dane odbiegające od normy, źle sformułowane zapytanie czy wszelkiego rodzaju błędy serwera. Błędy będą występować zawsze – ważne, żeby umieć sobie z nimi radzić. Pewnym minimum jest stworzenie rejestru błędów. Idealnie byłoby zidentyfikować, co powoduje problem i na nowo załadować żądanie, tylko z problematyczną zawartością.

Rozwiązania i narzędzia do migracji danych

Jak w przypadku wszelkich rozwiązań IT, również w przypadku narzędzi do migracji danych mamy do dyspozycji dość dużą różnorodność rozwiązań. Dzielą się one na dwie zasadnicze grupy narzędzi do integracji danych z API:

1. Rozwiązania Point-to-Point

Czyli tak zwane rozwiązania „od punktu do punktu”, które pomagają rozwiązać jeden konkretny problem w integracji na jednym konkretnym elemencie tego procesu. Choć większość rozwiązań na rynku to właśnie te oferujące integrację point-to-point, to wiążą się one z wieloma ograniczeniami i choć na początku wydają się najlepsze ze względu na prostotę, szybki efekt i krótki proces wdrożenia użytkowników do pracy, to w miarę upływu czasu stają się mało opłacalne. Rozwiązania typu point-to-point mają swoje ograniczenia:

  • Ograniczone możliwości przetwarzania danych – element przetwarzający dane jest często scalony trwale z konektorem, przez co jeśli zechcemy przekształcić dane w mniej standardowy sposób, potrzebne będą zmiany w kodzie.
  • Początkowo rozwiązanie point-to-point (ze względu na prostotę) wabi niskimi kosztami utrzymania, ale w miarę dodawania takich jednorazowych, punktowych integracji, które zaczynają się kumulować, system staje się niezwykle złożony i chaotyczny, a więc trudny do monitorowania i utrzymania.
  • Rozwiązania tego typu są jednorazowe również ze względu na ich logikę, wprowadzone w jednym miejscu, nie dadzą się zastosować podczas innych integracji, a więc to, że np. użytkownicy nauczyli się sposobu działania jednego procesu, nie będzie ułatwieniem w kolejnych integracjach.

2. Elastyczne narzędzia do integracji danych

Dobrym przykładem jest tutaj Platforma FME, która pozwala integrować wiele różnych narzędzi bez konieczności zdobywania ciągle nowej wiedzy o nich albo budowania nowych komponentów. Tego typu rozwiązanie na początku może wydawać się bardziej skomplikowane niż rozwiązania point-to-point, ale wysiłek włożony w jego wdrożenie oraz nauczenie się obsługi, szybko zaczyna się zwracać. Elastyczne narzędzia są również lepiej dostosowane do charakteru danych, które są ze swej natury zmienne. Jeśli myślimy o architekturze integracji informacji w dłuższej perspektywie, elastyczne narzędzie jest jedynym słusznym wyjściem.

Przy okazji zapraszamy do obejrzenia nagrania z webinarium „Jak połączyć się z dowolnym API bez konieczności kodowania„, podczas którego omówiliśmy część zagadnień związanych z wykorzystaniem FME w pracy z API.

W pierwszej części artykułu wyjaśniliśmy czym jest API, jakie jest jego rola w dostarczaniu nowoczesnych usług i skąd bierze się popularność API. Omówiliśmy również sposób migracji i integracji danych z wykorzystaniem API oraz narzędzia do tworzenia i testowania API. W kolejnej części artykułu omówimy między innymi:

  • Dlaczego warto rozważyć tworzenie interfejsów API?
  • Dla kogo przeznaczone jest rozwiązanie API Codeless
  • API i FME – transformatory i możliwości uwierzytelniania

Nie chcesz przegapić kolejnej części artykułu? Koniecznie zaobserwuj nas na LinkedIn! Jeśli masz dodatkowe pytania na temat wykorzystania Platformy FME w pracy i komunikacji z API, odezwij się do nas! Eksperci i certyfikowani trenerzy FME chętnie pomogą!

Napisz do nas