Różnica między interfejsem API sieci Web a usługą sieci Web?


Odpowiedzi:


86

Usługi sieciowe - to standard zdefiniowany przez W3C, więc można uzyskać do nich dostęp półautomatycznie lub automatycznie (WSDL / UDDI). Całość oparta jest na XML, więc każdy może to nazwać. I każdy aspekt usługi jest bardzo dobrze zdefiniowany. Istnieje standard opisu parametrów, standard przekazywania parametrów, standard odpowiedzi, standard wykrywania itp. Prawdopodobnie możesz napisać książkę na 2000 stron, która opisałaby ten standard. Istnieją nawet „dodatkowe” standardy wykonywania „standardowych” czynności, takich jak uwierzytelnianie.

Pomimo faktu, że automatyczne wywoływanie i wykrywanie prawie nie działa, ponieważ klienci są raczej słabi i nie masz prawdziwej gwarancji, że dowolna usługa może zostać wywołana z dowolnego klienta.

Interfejs API sieci Web jest zwykle wykonywany jako HTTP / REST, nic nie jest zdefiniowane, dane wyjściowe mogą być np. JSON / XML, wejściem może być XML / JSON / lub zwykłe dane. Nie ma żadnych standardów dla czegokolwiek => brak automatycznego dzwonienia i wykrywania. Możesz podać opis w pliku tekstowym lub PDF, możesz zwrócić dane w systemie Windows-1250 zamiast Unicode itp. Dla opisu standardu będzie to 2-stronicowa broszura z kilkoma prostymi informacjami i zdefiniujesz wszystko inne.

Sieć przechodzi w stronę Web API / REST. Usługi sieciowe nie są tak naprawdę lepsze niż Web API. Bardzo skomplikowane w opracowaniu i zużywają znacznie więcej zasobów (przepustowość i pamięć RAM) ... a ze względu na wszystkie konwersje danych (ZAPYTANIE-> XML-> DANE-> ODPOWIEDŹ-> XML-> WALIDACJA-> KONWERSJA-> DANE) są bardzo powolny.

Na przykład. W WebAPI możesz spakować dane, wysłać je skompresowane i rozpakować + rozpakować na kliencie. W SOAP można było skompresować tylko żądanie HTML.


1
dzięki @Slawek, wyjaśniłeś to lepiej .. i dziękuję też za przykład ...
Harish Kurup

2
W rzeczywistości słyszę, że ludzie nazywają zarówno SOAP, jak i REST „usługami internetowymi”. Interfejs API sieci Web ma jednak tendencję do REST.
Ben Thurley

@ Sławek, tak jak powiedziałeś, to 2000 stron vs. kilka stron, samo wyjaśnia złożoność zmniejszoną. Dobry sposób, aby to powiedzieć po prostu ..
Jaqen H'ghar

20

Usługa internetowa umożliwia komunikację między maszynami za pośrednictwem protokołu HTTP. Interfejs API sieci Web jest podzbiorem usług sieciowych, które korzystają z konwencji REST (podsumowanie artykułu z Wikipedii ). Pojęcia zdecydowanie się pokrywają. Uważam, że większość ludzi wciąż myśli o usługach sieciowych -> SOAP / XML-RPC, co może niepotrzebnie mylić sprawy.

Na koniec musisz zadać kilka pytań, aby wyjaśnić, co ludzie mają na myśli. Nie każdy dokonuje rozróżnienia lub używa tych terminów zamiennie.


Dziękuję @Berin Loritsch, tak, to prawda, powoduje zamieszanie między API i WS ..
Harish Kurup

6

Usługi sieciowe to zdefiniowana architektura i podejście do problematycznej domeny określone przez W3C .

Usługi sieciowe zapewniają standardowy sposób współpracy między różnymi aplikacjami, działającymi na różnych platformach i / lub ramach

Interfejs API sieci Web to koncepcja, która abstrahuje od sposobu wdrażania tej koncepcji.

Mówiąc w skrócie ... internetowy interfejs API służy do sterowania silnikiem, podczas gdy WS - do BMW N53 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.