REST API vs SOAP – dwa sposoby na komunikację między aplikacjami.

API, czyli komunikacja między aplikacjami!

Zastanawialiście się kiedyś, w jaki sposób powstają aplikacje, które mogą korzystać z możliwości, które oferuje np. Google lub Twitter? Odpowiedź jest prosta — API (Application Programming Interface), czyli interfejs programistyczny aplikacji, który pozwala na komunikowanie się aplikacji.

Jakie zadanie spełnia API? Pozwala korzystać z dostępnych funkcjonalności serwisów, bibliotek, systemów operacyjnych itp. Najlepiej wytłumaczyć to na przykładzie. Amazona udostępnia usługi bazujące na machine learning, czyli nieodzowna część sztucznej inteligencji. Serwis udostępnia algorytm, który posiada umiejętność zamiany tekstu na audio. Przy wykorzystaniu API Amazona można stworzyć stronę, która będzie wykorzystywać ten lub inny algorytm, ponieważ API Amazona pokazuje, jakie zasoby musimy wykorzystać do jej stworzenia.

Należy rozróżnić  m.in.: API Bibliotek oraz te tworzone w architekturze REST. Doskonałym przykładem tej drugiej jest API Twittera, przy pomocy którego możemy pobierać tweety z Twittera, wykorzystując protokół HTTP.

Jeśli chodzi o przykład API Bibliotek, to warto przyjrzeć się API PDO wykorzystywane w PHP-ie, które pozwala na komunikację z zewnętrznymi usługami lub bazami danych. Innym przykładem może być API Biblioteki, która umożliwia edycję zdjęć.

REST CZY SOAP?

REST i SOAP to dwa różne rodzaje web services, czyli pewien składnik oprogramowania niezależny od platformy sprzętowej oraz implementacji, który dostarcza określone funkcjonalności.

REST jako jeden ze stylów architektury programowania określa zasady, które umożliwiają tworzenie rozwiązań przydatnych do skalowania aplikacji. Na model składa się zasób oraz URL, który go reprezentuje. Co ważne, każdy zasób może znajdować się na osobnym hoście, ponieważ reprezentowany jest przez indywidualny adres URL. Najważniejszą cechą REST jest to, że udostępnia wszystkie dane przy wykorzystaniu Internetu, może się dowolnie rozrastać, co skraca nam drogę do pracy w tzw. chmurze. REST jest m. in:

  • Bezstanowy
  • Nie wspiera transakcji
  • Nastawiony na zasoby
  • Zasoby/obiekty identyfikowane są przez URL

REST wykorzystywany jest przez wiele popularnych platform czy serwisów internetowych. Jednym z nich jest Allegro. REST to nic innego, jak system komunikacji pomiędzy aplikacjami wykorzystujący protokół HTTP. Należy pamiętać, że REST nie jest nowym protokołem. Całość komunikacji oparta jest już na istniejącym protokole HTTP. Bardzo ważne w wykorzystaniu HTTP jest użycie odpowiednich metod:

  • GET: Wykorzystywana do pobierania danych. Wszystkie metody GET mogą być wołane wielokrotnie.
  • POST: Wykorzystywana do utworzenia nowego zasobu.
  • PUT: Wykorzystywana do edycji zasobu. Dwukrotne wywołanie metody PUT na tym samym zasobie jest bezpieczne.
  • DELETE: Wykorzystywana do usuwania zasobów

REST nie jest ustandaryzowanym systemem np. na poziomie odpowiedzi, jakie otrzymujemy od serwerów, ponieważ każde API inaczej określa np. paginację zasobów. Oznacza to, że nie zostały stworzone reguły czy zasady, według których powinno się go tworzyć. Przy ogromie dostępnych oraz różnorodnych API może to utrudnić pracę programistów.

Inaczej ma się z SOAP, który jest ustandaryzowan, co znaczy, że to my musimy dostosować się do wytworzonych reguł, tworząc system komunikacji. Różnic między SOAP a REST jest wiele, najważniejsza to protokół HTTP, z którego SOAP korzysta w bardzo okrojony sposób.

Simple Object Access Protocol (SOAP) protokół komunikacyjny, wykorzystujący XML do kodowania wywołań i najczęściej protokołu HTTP do ich przenoszenia. Jest stanowy oraz wspiera transakcje.

Jak wspomniałam wcześniej, SOAP został ustandaryzowany, co oznacza, że udostępnia nam dużo więcej możliwości. Jednakże problemy pojawiają się na poziomie manualnego testowania oraz analizy zapytań. Wykorzystując SOAP jesteśmy zmuszeni wysłać większą ilość danych. To tak, jak z wysyłaniem listu i pocztówki. SOAP jest listem, w którym zawieramy dużo informacji, a REST pocztówką, na której znajdzie się kilka słów. Główną wadą SOAPa w porównaniu z REST jest fakt, że jest o wiele bardziej skomplikowany. Dodatkowo zajmuje więcej miejsca — jest cięższy. REST jest o wiele bardziej popularny.

Podsumowując REST to wzorzec narzucający dobre praktyki tworzenia architektury aplikacji rozproszonych. REST API jest usługą sieciową opierającą się na bazie protokołu HTTP i głównych zasad wzorca REST.

 

 

Źródła: 
http://jlfedra.blogspot.com/
http://kobietydokodu.pl/
https://mickl.net/
http://www.yarpo.pl/

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *