Jaka jest różnica między interfejsem API sieci Web a usługą sieciową?

136

Czy jest jakaś różnica między interfejsem API sieci Web a usługą sieciową ? A może są jednym i tym samym?

sansh
źródło
Zobacz też: API vs. Webservice [zamknięte]
hippietrail
2
Zobacz także programmers.SE: Różnica między interfejsem API sieci Web a usługą sieciową?
hippietrail
3
Interfejs API to opublikowany interfejs, podczas gdy usługa to implementacja działająca na zapleczu.
Rasika Perera
1
Prosimy o ostrożne czytanie odpowiedzi. Niektóre z nich są nieaktualne lub nieważne
Menuka Ishan
tylko dodając jeszcze jedno genialne wyjaśnienie - quora.com/What-is-the-difference-between-web-services-and-API
Ashish Shetkar

Odpowiedzi:

71

Usługa WWW zazwyczaj oferuje WSDL, z którego można automatycznie tworzyć kody pośredniczące klienta. Usługi sieci Web są oparte na protokole SOAP . ASP.NET Web API to nowsza platforma firmy Microsoft, która pomaga w tworzeniu interfejsów opartych na REST . Odpowiedź może być w formacie JSON lub XML, ale nie ma możliwości automatycznego generowania klientów, ponieważ interfejs API sieci Web nie oferuje opisu usługi, takiego jak WSDL z usług sieci Web. Zależy to więc od Twoich wymagań, której z technik chcesz użyć. Być może nawet WCF lepiej spełnia Twoje wymagania, wystarczy spojrzeć na dokumentację MSDN.

TMK
źródło
7
Usługi sieciowe NIE muszą być oparte na protokole SOAP.
horcrux
3
technicznie przestarzała odpowiedź
Arun Raaj
4
„ASP.NET Web API” to struktura firmy Microsoft, a nie samo „Web API”.
Amir Hossein Ahmadi
nieaktualna odpowiedź, odwiedź ten link microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad
41

Podstawowa różnica między usługami sieci Web a interfejsami API sieci Web

Serwis internetowy:

1) Jest to usługa oparta na SOAP i zwraca dane jako XML.

2) Obsługuje tylko protokół HTTP.

3) Nie jest to oprogramowanie typu open source, ale może być używane przez każdego klienta, który rozumie XML.

5) Wymaga protokołu SOAP do odbierania i wysyłania danych przez sieć, więc nie jest to lekka architektura.

Internetowy interfejs API:

1) Interfejs API sieci Web jest usługą opartą na protokole HTTP i domyślnie zwraca dane JSON lub XML.

2) Obsługuje protokół HTTP.

3) Może być hostowany w aplikacji lub w usługach IIS.

4) Jest open source i może być używany przez każdego klienta, który rozumie JSON lub XML.

5) Ma lekką architekturę i jest dobry dla urządzeń o ograniczonej przepustowości, takich jak urządzenia mobilne.

Vaibhav Shiledar
źródło
7
Usługa internetowa może być hostowana w wielu miejscach, nie tylko w usługach IIS
Ignacio Soler Garcia
3
Praktycznie wszystkie punkty są błędne. Nie rozumiem, jak 40 użytkowników mogło zagłosować za.
horcrux
1
@horcrux Zgadzam się. Usługa sieciowa nie jest usługą opartą na SOAP.
Ryan Shillington,
najbardziej zagmatwana odpowiedź, jaką kiedykolwiek widziałem.
mhrsalehi
23

API a usługa internetowa

Właśnie wkleiłem podsumowanie połączonego artykułu:

Podsumowanie:

  1. Wszystkie usługi internetowe są interfejsami API, ale wszystkie interfejsy API nie są usługami internetowymi.

  2. Usługi internetowe mogą nie wykonywać wszystkich operacji, które wykonywałby interfejs API.

  3. Usługa sieci Web używa tylko trzech stylów użytkowania: SOAP, REST i XML-RPC do komunikacji, podczas gdy API może używać dowolnego stylu do komunikacji.

  4. Usługa sieci Web zawsze potrzebuje sieci do działania, podczas gdy interfejs API nie potrzebuje sieci do działania.

  5. API ułatwia bezpośrednie połączenie z aplikacją, podczas gdy usługa internetowa to ...

Czytaj więcej: Różnica między interfejsem API a usługą sieciową | Różnica między | API a usługa internetowa http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Zobacz powyższy link, aby uzyskać pełną odpowiedź.

Zia Ur Rahman
źródło
10
Ale pytanie dotyczy różnicy między WebAPI i WebService, a nie „API”
Kulbhushan Singh
Ponadto punkt 3 nie jest poprawny. Jest to mylące i pomaga tylko wprowadzić zamieszanie w temacie „SOAP vs. REST”.
horcrux
9

Aby uzyskać więcej informacji, odwiedź ten link Diagram

Adiii
źródło
2
czemu? z tego obrazka wynika, że ​​usług sieciowych SOAP nie można używać na smartfonach ... ani nawet na komputerach stacjonarnych? naprawdę? ktoś zmusza cię do czytania JSON zamiast XML na tych platformach?
AndreaCi
jeśli odczytujesz xml, nie oznacza to, że usługa bazowa SOAP REST obsługuje również wartości oddzielone komend (CSV), JavaScript Object Notation (JSON) i Really Simple Syndication (RSS).
Adiii
7

Usługą sieci Web, jeśli chcesz, jest interfejs API sieci Web. W szczególności Web API zwykle oznacza usługę sieciową RESTful (opartą na HTTP), a usługa sieciowa zwykle oznacza SOAP + WSDL (+ HTTP lub SMTP lub JMS ..).

Typowo usługi internetowe zgodne z REST są przeciwieństwem usług internetowych (WSDL, SOAP), ale ostatnio wprowadzono termin usługi internetowe zgodne z REST (z wielką literą „W”), które oznacza RESTful + WSDL + SOAP.

Sprawdź tę tabelę pod kątem różnic między trzema koncepcjami: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Mam nadzieję, że to pomoże!

Gabe
źródło
4

Usługa internetowa jest absolutnie taka sama jak Web API - tylko nieco bardziej ograniczona pod względem formatu danych. Oba używają protokołu HTTP i oba umożliwiają tworzenie usług REST. I nie zapomnij o innych protokołach, takich jak JSON-RPC - może pasują lepiej.

Vincent
źródło
1
Nie są „absolutnie takie same”, jeśli teraz istnieją ograniczenia, prawda?
Ojonugwa Jude Ochalifu
0

W kontekście ASP.Net Web API jest kontrolerem, którego klasą bazową jest ApiController i nie używa widoków. Usługa sieci Web jest klasą pochodną usługi WebService i ma automatyczne generowanie WSDL. Domyślnie jest to interfejs API SOAP, ale można również użyć formatu JSON, dodając atrybut ScriptServiceAttribute .

jmoffatt
źródło
0

API i serwis WWW służą jako środki komunikacji.

Jedyna różnica polega na tym, że usługa internetowa ułatwia interakcję między dwoma komputerami w sieci. Interfejs API działa jako interfejs między dwiema różnymi aplikacjami, dzięki czemu mogą się one ze sobą komunikować . API to metoda, za pomocą której zewnętrzni dostawcy mogą pisać programy, które łatwo łączą się z innymi programami. Usługa sieci Web jest zaprojektowana tak, aby miała interfejs przedstawiony w formacie przetwarzalnym maszynowo, zwykle określonym w języku opisu usługi sieci Web (WSDL)

Wszystkie usługi internetowe są interfejsami API, ale nie wszystkie interfejsy API są usługami internetowymi.

Usługa internetowa to po prostu interfejs API opakowany w HTTP.


To tutaj artykuł stanowi dobrą wiedzę dotyczącą usługi internetowej i API.

KamalDeep
źródło
-2

Cóż, TMK może mieć rację w świecie Microsoft, ale w świecie całego oprogramowania, w tym Java / Python / itp., Wierzę, że nie ma różnicy. To ta sama rzecz.

Ryan Shillington
źródło
-2

Różnica między usługą sieciową a interfejsem API sieci Web ładnie wyjaśniono tutaj:

/software/38691/difference-between-web-api-and-web-service

Tekst z linku:

Usługi sieciowe - to standard zdefiniowany przez W3C, dzięki czemu można uzyskać do nich dostęp półautomatycznie lub automatycznie (WSDL / UDDI). Całość oparta jest o XML, więc każdy może to nazwać. A każdy aspekt usługi jest bardzo dobrze zdefiniowany. Istnieje standard opisu parametrów, standard przekazywania parametrów, standard odpowiedzi, standard wykrywania itp. Prawdopodobnie mógłbyś napisać 2000-stronicową książkę opisującą 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 kiepscy i nie masz rzeczywistej gwarancji, że jakakolwiek usługa może zostać wywołana od dowolnego klienta.

Web API jest zwykle realizowane jako HTTP / REST, nic nie jest zdefiniowane, dane wyjściowe mogą być np. JSON / XML, dane wejściowe mogą być XML / JSON / lub zwykłymi danymi. Nie ma żadnych standardów => brak automatycznego wywoływania i wykrywania. Możesz podać opis w pliku tekstowym lub PDF, możesz zwrócić dane w systemie Windows-1250 zamiast w formacie Unicode itp. Aby opisać standard, byłaby to 2-stronicowa broszura z kilkoma prostymi informacjami, a wszystko inne zdefiniujesz.

Sieć zmienia się w kierunku Web API / REST. Usługi internetowe nie są tak naprawdę lepsze niż interfejs API sieci Web. Bardzo skomplikowane w opracowaniu i pochłaniają znacznie więcej zasobów (przepustowość i pamięć RAM) ... a ponieważ wszystkie konwersje danych (ŻĄDANIE-> 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ć i rozpakować na kliencie. W SOAP można było tylko kompresować żądanie HTML.

csh
źródło
-2

Wszystkie usługi sieciowe to API, ale wszystkie API nie są usługami sieciowymi. API, które jest dostępne w sieci WWW, nazywa się usługami sieciowymi.

Pavan T
źródło
Usługa sieciowa to standard zdefiniowany przez W3C, dobrze udokumentowana usługa dla oprogramowania innych firm do interakcji za pośrednictwem XML (WSDL / UDDI). Interfejs API sieci Web to interfejs API przez HTTP, niezbyt dobrze udokumentowany, ma swój własny standard. I ogólnie API jest czymś, co może lub nie może mieć dostępu do Internetu, aby rozmawiać z innymi aplikacjami i może mieć również inne protokoły, np. API dla wywołań systemowych, aby rozmawiać z terminalem / cmd w systemie operacyjnym.
Imam Bux
-3

Dwie rzeczy są bardzo łatwe do zrozumienia:

  1. API: jest to warstwa aplikacji, która może lokalnie obsługiwać inne żądania aplikacji.
  2. Usługa sieciowa: jest interfejsem API, który może obsługiwać żądania i odpowiadać przez sieć z systemu zdalnego za pośrednictwem sieci WWW lub Internetu.

Uwaga: wszystkie usługi internetowe to interfejsy API, ale nie wszystkie interfejsy API to usługi internetowe

Pavan T
źródło
Lokalnie, a także w Internecie
Pavan T