Dużo słyszałem o usługach internetowych i interfejsach API, czy jest między nimi jakaś różnica, czy są one takie same?
web-development
terminology
api
web-services
Harish Kurup
źródło
źródło
Odpowiedzi:
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.
źródło
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.
źródło
Usługi sieciowe to zdefiniowana architektura i podejście do problematycznej domeny określone przez W3C .
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 .
źródło