W ostatnim czasie słowo API zyskało na popularności i wiele osób, których biznes działa w Internecie jest zainteresowane tym narzędziem. Czym zatem jest API?

Co to jest API?

API to skrót od angielskiego Application Programming Interface, co w wolnym tłumaczeniu oznacza Interfejs Programowania Aplikacji. API daje nam możliwość utworzenia właśnie takiego interfejsu komunikacyjnego, za pomocą którego nasza aplikacja lub sklep może komunikować się z zewnętrznymi systemami.

Jak to najprościej wytłumaczyć? Posłużmy się przykładem Pana Pawła.

Pan Paweł prowadzi firmę produkcyjną, którą zarządza z poziomu programu ERP autorstwa firmy „X”. System ERP w jego firmie pozwala mu zarządzać przebiegiem produkcji, stanami magazynowymi oraz umożliwia fakturowanie. Jedyne czego nie może robić Paweł to sprzedaż produktów dla klientów indywidualnych. Pan Paweł postanawia udać się do firmy „Y” aby zakupić od nich sklep internetowy. Wszystko wydaje się w porządku – mamy system do zarządzania produkcją oraz system sprzedaży dla klientów indywidualnych, jednak są to dwa osobne systemy. Sklep nie wie jakie produkty są w ofercie firmy Pana Pawła do póki nie wprowadzi ich do sklepu. W momencie zakupu produktu system magazynowy zawarty w oprogramowaniu ERP nie wie, że dany produkt został sprzedany i należy zmniejszyć jego stan na magazynie. Tak samo w przypadku faktury – pracownik musi przejść między systemami i ręcznie wygenerować fakturę dla klienta, który dokonał zakupu. Brzmi znajomo?
 

Blog Sungroup - API

A co gdyby użyć interfejsu API?

Oczywiście, aby było to możliwe to oba systemy muszą być otwarte na komunikację. Podobnie jak w prawdziwym życiu – jeżeli ktoś nie chce nas słuchać to fakt, że do kogoś mówimy nie spowoduje, że zacznie. Już na samym starcie okazuje się, że nie musimy wprowadzać wszystkich produktów do sklepu ręcznie (przecież mamy je już w naszym ERP prawda?), pobieramy je do sklepu z uwzględnieniem stanów magazynowych aby przypadkiem nie sprzedać czegoś, czego nie ma już na magazynie. Następnie, w momencie zakupu, sklep „informuje” program ERP o transakcji dzięki czemu system magazynowy od razu aktualizuje stany magazynowe a pracownicy dostają informację, jakie produkty należy przygotować do wysyłki. Po zakończeniu transakcji system ERP generuje fakturę, którą przekazuje do sklepu aby ten mógł przekazać ją klientowi. Cała komunikacja odbywa się automatycznie. Pan Paweł zyskał na tym ogromną ilość czasu oraz wyeliminował błąd ludzki, który w przypadku monotonnej pracy takiej, jak przenoszenie danych między systemami, jest wysoce prawdopodobny. A to jedynie kropla w morzu możliwości, jakie daje API.

Standardy API

W dużym uproszczeniu możemy powiedzieć, że mamy dwa standardy API: REST oraz SOAP – przy czym każdy z nich wykorzystywany jest w innym obszarze oraz w innym celu. Metaforycznie można by je porównać do pocztówki i listu. REST jest lekki, krótki i zawiera niewiele informacji dzięki czemu można go szybko odczytać jak pocztówkę. W przypadku długiego listu musimy poświęcić więcej czasu aby go przeczytać jednak ilość informacji, które nam dostarczył jest kilkukrotnie większa – tak właśnie działa SOAP.

Obecnie, bardziej popularny jest interfejs w standardzie REST. Jednak czy każde API, które nie jest w standardzie SOAP można nazwać API REST? Oczywiście, że nie! Ogromna ilość API, które tworzy się na potrzeby integracji czerpie z architektury REST mimo to nie spełnia wszystkich wymaganych założeń (a jest ich naprawdę sporo). Powstało jednak wiele standardów, które mają pomóc zachować pewien porządek w budowaniu odpowiedzi np. JSON:API, Microsoft REST API Guidelines, Google API Design Guide czy też bardzo popularne OpenAPI wspierane przez oprogramowanie Swagger. Nie bez powodu wspominamy o Swagger – jest to oprogramowanie, które nie tylko pomaga developerom pisać proste i czytelne API ale od razu podczas pisania tworzy dokumentację, która jest bardzo pomocna przy późniejszej integracji z systemem. Dodatkowo, to narzędzie pozwala na wygenerowanie gotowego klienta API co jeszcze bardziej ułatwia ostateczną integrację.

Czy Twój biznes potrzebuje API? Odpowiedź nasuwa się sama. Zdecydowanie tak.