REST API jest to uniwersalny interfejs HTTP do komunikacji między oprogramowaniem klienta a serwerem za pośrednictwem sieci. REST (Representational State Transfer) oznacza architekturę w której zdefiniowano konkretne metody, zasoby oraz bezstanowość, API (application programming interface) jest to po prostu interfejs, a HTTP (Hypertext Transfer Protocol) jest to protokół przesyłania dokumentów w sieci WWW. Najczęściej w tego typu interfejsach wykorzystuje się metody:
- GET (pobranie zawartości),
- POST (tworzenie i pobranie nowych zawartości),
- PUT (aktualizacja zawartości),
- DELETE (usuwanie zawartości).
Nie są to co prawda wszystkie metody dostępne w REST, jednak na pewno najbardziej popularne i większość systemów ogranicza się do tej kluczowej czwórki.
Warto wspomnieć, że z założenia, w komunikacie odpowiedzi dostajemy dane oraz kod odpowiedzi. Dane zazwyczaj są w formacie JSON,rzadziej XML. Są to wygodne formaty do przechowywania ustrukturyzowanych danych. Też ewentualna ich późniejsza analiza nie przysparza zbyt wielu problemów, z uwagi na dostępność bibliotek do konwersji i analizy tego typu formatów dla wielu języków programowania. Nawet import pliku JSON czy XML do MS Excela jest funkcjonalnością wbudowaną w Power Query, co pozwala na analizę osób które z programowaniem nie mają nic wspólnego.
To tyle jeżeli chodzi o techniczny wstęp, jaki zatem ma to związek z przemysłem? Obecnie, przy dużej popularności rozwiązań IoT, wielu dostawców oferuje w swoich usługach chmurowych tego typu interfejsy. Dzięki nim, możemy komunikować się z systemami chmurowymi w których są przechowywane dane z maszyn i czujników. Jeżeli przedsiębiorstwo używa platformy chmurowej jako swojego centrum danych Internetu rzeczy, to można z powodzeniem zintegrować je z innymi platformami, tak aby wszystkie dane były w jednym miejscu. Zazwyczaj wiąże się to z zaimplementowaniem niewielkiego programu po stronie serwera w chmurze, tak aby cyklicznie pobierał dane wykorzystując REST API. Przykładem mogą być: roboty ABB i Robot Web Services, kontrolery IO MOXA ioThinx, bramy Prosoft Data Logger Plus, roboty MIR i wiele innych. Urządzeń wspierających tego typu interfejsy wciąż przybywa.
Od strony programistycznej, w praktyce przemysłowej, gdzie prostota i sprawdzone rozwiązania są kluczem do stabilnego działania – bardzo ważnym jest, że biblioteki do komunikacji po HTTP REST API są dostępne niemal dla każdego języka programowania i platformy sprzętowej. Niezależnie czy to C#, Python, C++ to biblioteki są łatwe w obsłudze i sprawdzone. Dodatkowo zazwyczaj dokumentacje dostawców są przejrzyste i pełne przykładów, w związku z czym samo wywołanie zapytania nie generuje większych problemów.
Tego typu interfejsy są również przydatne kiedy chcemy zrobić kopię danych z chmury do serwerów lokalnych. Implementacja programu jest równie prosta jak w przypadku chmury, jedynie trzeba zapewnić odpowiednie zezwolenia w firewallu sieci wewnętrznej aby mieć dostęp do określonych adresów. Aby jeszcze bardziej uelastycznić taki transfer danych, można napisać skrypt bezpośrednio na serwerze bazy danych (np. SQL), dzięki czemu wykorzystując REST API, baza danych sama ściąga odpowiednie informacje. W takiej architekturze, z powodzeniem można zintegrować wszystkie dane z lokalnych serwerów jak i te z chmury.
Na uwagę zasługuje również możliwość łatwego testowania interfejsów. Z uwagi na ich popularność, powstało wiele programów które symulują klienta REST. Warty zapoznania się, jest program Postman, który posiada przejrzysty interfejs graficzny, ale i daje wiele możliwości. Zapytania można zapisywać w szablony, odpowiedzi wyświetlać w różnych formatach, a i z zapytań można bezpośrednio generować kod Java, C# czy Python. Dzięki temu, pisanie swoich programów/wtyczek jest znacznie skrócone, ponieważ samą składnie zapytania, autoryzację użytkownika i nagłówki można przetestować w dedykowanym oprogramowaniu. Na tym etapie również wyjdą wszelkie problemy komunikacyjne, jak zablokowany ruch po stronie firewalla czy konfiguracja switcha.
Taki sam rodzaj interfejsu używają również inne systemy, jak: zarządzanie projektami (np. Jira), systemy rejestracji czasu pracy, automatyzacja domu, rozrywka (np. YouTube). Daje to dostęp do ogromnej bazy wiedzy rozwiązań ewentualnych problemów, co do niedawna w automatyce przemysłowej mogło być problematyczne. Zamiast specjalistycznych grup dyskusyjnych, pomocy można szukać na dużych forach deweloperskich. Taki stan rzeczy jest też jednoznaczną informacją jak świat przemysłu coraz silniej przecina się ze światem IT. Dlatego też, aby pozostać konkurencyjnymi, przedsiębiorstwa produkcyjne muszą rozszerzać swoje horyzonty o stricte cyfrowe rozwiązania. Znajomość REST API na pewno daje możliwość zbudowania skrojonych na własne potrzeby interfejsów, będąc jednocześnie przy tym prostym i skutecznym rozwiązaniem. Jest to również jeden z nieodłącznych tematów w IIoT (przemysłowy Internet rzeczy), ponieważ pozwala na swobodną komunikacje między różnymi systemami/serwerami chmurowymi.
Źródło: Redakcja Portal Przemysłowy.pl