Dlaczego warto kierować się podejściem API-First?

Kuba MasztalskiOstatnia aktualizacja:4 min czytania

Wybierając CRM, system marketing automation albo program księgowy, łatwo skupić się na funkcjach widocznych w interfejsie. Po kilku miesiącach pojawia się potrzeba połączenia go z resztą firmy. Wtedy jakość API zaczyna mieć bezpośredni wpływ na koszt i możliwości automatyzacji.

Co to jest API?

API, czyli Application Programming Interface, określa sposób komunikacji między programami. Opisuje, jakie operacje można wykonać, jakie dane wysłać, jak się uwierzytelnić i jaką odpowiedź zwróci system.

Przez API można na przykład utworzyć kontakt w CRM, pobrać status płatności, dodać zadanie albo odczytać fakturę. Dzięki temu pracownik nie musi eksportować pliku, przepisywać danych do drugiego narzędzia i pamiętać o wykonaniu kolejnego kroku.

API ma jednak konkretny zakres. Dostęp do listy klientów nie oznacza, że można także pobrać historię aktywności, pola własne albo usunąć rekord. Przed zakupem narzędzia warto sprawdzić dokumentację dla operacji ważnych w danym procesie.

Co znaczy API-First?

W podejściu API-First zespół projektuje kontrakt komunikacji przed budową kolejnych sposobów korzystania z systemu. Interfejs webowy, aplikacja mobilna i integracje korzystają wtedy z tych samych dobrze opisanych funkcji.

Do opisywania takich kontraktów często służy OpenAPI Specification. Dokument może zawierać dostępne operacje, parametry, formaty odpowiedzi i błędy. Na jego podstawie da się generować część dokumentacji, klientów programistycznych i testów.

Z perspektywy firmy kupującej oprogramowanie określenie API-First jest deklaracją producenta. Trzeba ją sprawdzić w praktyce. Rozbudowana strona marketingowa o integracjach nie zastępuje kompletnego API.

Integracje dzięki API

Załóżmy, że po zmianie etapu szansy sprzedaży CRM ma utworzyć projekt, folder klienta i pierwsze zadania. API pozwala przesłać te dane automatycznie. Jeżeli projekt zostanie później anulowany, potrzebna będzie także operacja aktualizacji lub zamknięcia powiązanych elementów.

Dobra integracja zapisuje identyfikatory rekordów w obu systemach. Dzięki temu aktualizuje istniejący projekt zamiast tworzyć następną kopię. Musi też obsłużyć sytuację, w której pierwszy system zapisał zmianę, a drugi chwilowo jej nie przyjął.

Warto szukać połączenia API i webhooków. API pozwala wykonać lub odczytać operację, a webhook informuje o zdarzeniu. Bez webhooka integracja często musi co kilka minut pytać o zmiany, co zwiększa liczbę wywołań i opóźnienie.

Jak ocenić API przed wyborem narzędzia

Zacząłbym od dokumentacji. Powinna być publiczna albo dostępna przed podpisaniem umowy, zawierać przykłady żądań, opis uwierzytelniania, błędów, limitów i wersjonowania. Dobrze, jeżeli dostawca udostępnia środowisko testowe oraz historię zmian.

Następnie sprawdziłbym kilka konkretnych kwestii:

  • Czy API obejmuje dane i operacje potrzebne w naszych procesach?
  • Czy można filtrować i stronicować większe zbiory danych?
  • Jak działają limity zapytań i co zwraca system po ich przekroczeniu?
  • Czy operacje tworzące dane obsługują klucz idempotencji lub inne zabezpieczenie przed duplikatami?
  • Czy webhooki są podpisywane, ponawiane po błędzie i mają identyfikator zdarzenia?
  • Jak długo dostawca utrzymuje starszą wersję API po ogłoszeniu zmiany?
  • Czy eksport obejmuje wszystkie nasze dane oraz powiązania między nimi?

Na koniec wykonałbym mały test techniczny. Warto utworzyć rekord, zmienić go, pobrać listę, zasymulować błąd i sprawdzić webhook. Kilka godzin takiego testu może ujawnić ograniczenia, których nie widać w tabeli funkcji.

Uwierzytelnianie i uprawnienia

API wymaga danych dostępowych. Najprostszy klucz zapewniający pełny dostęp do całego konta jest wygodny, ale zwiększa skutki jego wycieku. Lepsze rozwiązania pozwalają nadawać aplikacji ograniczone zakresy, ustalać czas ważności tokenów i szybko je unieważniać.

Sekrety powinny znajdować się w przeznaczonym do tego magazynie albo bezpiecznych zmiennych środowiskowych. Trzeba wiedzieć, kto je utworzył, gdzie są używane i jak przebiega ich wymiana. Logi integracji nie powinny zapisywać tokenów ani pełnych danych klientów bez wyraźnej potrzeby.

Przy ważnych systemach przydaje się osobne konto techniczne. Odejście pracownika lub zmiana jego hasła nie zatrzyma wtedy integracji, a historia operacji pozostanie czytelna.

Stabilność, wersje i błędy

Każde API się zmienia. Dostawca może dodać pole, wycofać endpoint albo zmienić sposób uwierzytelniania. Integracja powinna tolerować dodatkowe pola i jasno reagować na zmianę, której nie rozumie. Powinna też rejestrować błędy wraz z identyfikatorem żądania, żeby można było odtworzyć przebieg zdarzeń.

Błędy chwilowe, takie jak timeout albo limit zapytań, zwykle można ponowić z rosnącym odstępem. Błędy danych i uprawnień wymagają poprawy po stronie procesu. Nieskończone ponawianie każdej odpowiedzi może zwiększyć problem, koszt i liczbę duplikatów.

Znaczenie ma idempotencja. Jeżeli po timeoutcie nie wiemy, czy zapis się udał, ponowienie tego samego żądania powinno zwrócić wcześniejszy wynik albo bezpiecznie nie tworzyć drugiego rekordu. Gdy API nie oferuje takiego mechanizmu, integracja musi przechować własny identyfikator operacji i sprawdzić stan przed kolejną próbą.

API-First jako kryterium zakupowe

W większości małych i średnich firm używa się gotowych usług w modelu subskrypcyjnym. Kolejne narzędzia składają się w firmowy system podobnie jak klocki. API decyduje, czy te elementy można sensownie połączyć oraz czy późniejsza zmiana jednego z nich będzie wykonalna.

Przy wyborze programu zapytałbym więc o API, webhooki, eksport danych, limity, środowisko testowe i politykę wycofywania wersji. Potem sprawdziłbym najważniejszy proces na małym przykładzie. Taki test daje więcej informacji niż liczba logotypów integracji pokazana na stronie dostawcy.

Powiązane artykuły

Jeśli chcesz rozwinąć ten temat, zacznij od tych materiałów:

Bezpłatna konsultacja

Porozmawiajmy

Wybierz dogodny termin w kalendarzu. Podczas 30-minutowej rozmowy omówimy Twoją sytuację i sprawdzimy, czy mogę pomóc.

Umów rozmowę