Realne koszty złego projektowania API: 3 lekcje z praktyki
Gdy myślimy o API, często wyobrażamy sobie suchy kod – endpointy, JSON, statusy HTTP. Ale w rzeczywistości API jest twarzą Twojego biznesu w cyfrowym świecie. To przez nie płyną zamówienia, dane klientów, synchronizacje z partnerami. Gdy projektujesz je byle jak, koszty ujawniają się tam, gdzie najmniej się ich spodziewasz. Poniżej trzy lekcje z własnej praktyki, które pokazują, jak źle zaprojektowane API potrafi rujnować firmę.
1. Brak limitów: kiedy API działa jak parasol w huragan
Pracowałem kiedyś z klientem prowadzącym platformę SaaS dla e-commerce. Ich API umożliwiało zewnętrznym systemom pobieranie listy produktów. Niby proste – endpoint GET /products. Ale nie było żadnego paginowania ani limitowania. Pewnego dnia jeden z partnerów wystawił endpointy na żądania z pętlą. Serwer złożył hołd, a wraz z nim poszły wszystkie zapytania dla pozostałych klientów. Awaria trwała ponad 4 godziny. Efekt? 150 tysięcy złotych strat w zamówieniach i utrata zaufania dwóch kluczowych partnerów.
Co zrobiliśmy? Wdrożyliśmy paginację z cursor-based, limity na poziomie API Gateway (np. 100 zapytań na minutę na klienta) i retry z wzorcem circuit breaker. Dziś API wytrzymuje skoki ruchu bez mrugnięcia okiem.
Wniosek: Zawsze zakładaj, że Twój klient API może zachować się jak bot. Limitowanie i ochrona przed przeciążeniem to nie opcja, to konieczność.
2. Za dużo naraz: pułapka „jednego endpointu do wszystkiego”
Inny przypadek: sklep internetowy z aspiracjami omnichannel. Chcieli jednym zapytaniem pobrać dane produktu z opisem, zdjęciami, wariantami, cenami, promocjami i recenzjami. Brzmi wygodnie? Było, dopóki nie zaczęły się problemy z wydajnością. Każde wywołanie tego monolitycznego endpointu wyciągało setki rekordów z bazy, łączyło tabele, generowało JSON wielkości 2 MB. Strona produktowa ładowała się 8 sekund, współczynnik odrzuceń poszybował w górę.
Rozwiązanie: Zastosowaliśmy wzorzec CQRS (Command Query Responsibility Segregation) oraz dedykowane endpointy dla konkretnych kontekstów: /products/{id}/details, /products/{id}/reviews itp. Dodatkowo wdrożyliśmy cachowanie na poziomie CDN i Redis. Czas odpowiedzi spadł poniżej 200 ms.
Wniosek: API nie musi być uniwersalne. Lepiej mieć kilka prostych, szybkich endpointów niż jeden potwornie skomplikowany. Twoi klienci (i serwery) Ci podziękują.
3. Słaba dokumentacja – cicha zabójczyni onboardingu
Dokumentacja często traktowana jest po macoszemu. Miałem klienta, który dostarczał publiczne API do agregacji ofert. Dokumentacja była jedną stroną PDF z paroma przykładami. Każdy nowy partner spędzał tygodnie na zgadywaniu, jak poprawnie wywołać endpointy. Zgłoszenia do supportu lały się strumieniem – pytania o format daty, typy błędów, obsługę limitów. Koszty onboardingu były absurdalne, a wielu partnerów rezygnowało po pierwszych próbach.
Przepis na sukces: Stworzyliśmy interaktywną dokumentację w OpenAPI (Swagger) z przykładami kodu w kilku językach, sekcją z typowymi błędami i workshopem live. Ponadto dodaliśmy automatyczne testy poprawności integracji. Liczba zgłoszeń spadła o 70%, a onboarding skrócił się z dwóch tygodni do dwóch dni.
Wniosek: Dokumentacja to nie fanaberia, to narzędzie redukcji kosztów. Dobrze opisane API to mniej pytań, szybsza adopcja i lepsze relacje z partnerami.
Podsumowanie
Złe API to nie tylko problem techniczny – to realny wpływ na przychody, koszty operacyjne i satysfakcję klientów. W JurskiTech.pl projektujemy API, które jest skalowalne, wydajne i dobrze udokumentowane. Nie pozwól, by Twoje API stało się wąskim gardłem dla biznesu. Zacznij od małych kroków: wprowadź limity, dziel odpowiedzialność i dbaj o dokumentację. Twoi klienci odczują to szybciej, niż myślisz.


