Qual é a diferença entre uma API da web e um serviço da web?

136

Existe alguma diferença entre uma API da web e um serviço da web ? Ou eles são o mesmo?

sansh
fonte
Veja também: API vs. serviço da Web [fechado]
hippietrail 28/03
2
Consulte também programmers.SE: Diferença entre API da Web e serviço da Web?
hippietrail
3
Uma API é a interface publicada, enquanto o serviço é a implementação em execução no back-end.
Rasika Perera
1
Por favor, leia as respostas com cautela. Alguns deles seja ultrapassada ou inválido
Menuka Ishan
apenas adicionando uma explicação mais brilhante - quora.com/What-is-the-difference-between-web-services-and-API
Ashish Shetkar

Respostas:

71

Um serviço da Web geralmente oferece um WSDL a partir do qual você pode criar stubs de clientes automaticamente. Os serviços da Web são baseados no protocolo SOAP . A API da Web do ASP.NET é uma estrutura Microsoft mais recente que ajuda a criar interfaces baseadas em REST . A resposta pode ser JSON ou XML, mas não há como gerar clientes automaticamente porque a API da Web não oferece uma descrição de serviço como o WSDL dos Serviços da Web. Portanto, depende de seus requisitos qual das técnicas você deseja usar. Talvez até o WCF atenda melhor aos seus requisitos, basta olhar para a documentação do MSDN.

TMK
fonte
7
Os serviços da Web NÃO são necessariamente baseados no protocolo SOAP.
precisa saber é
3
resposta tecnicamente desatualizada
Arun Raaj
4
"ASP.NET Web API" é uma estrutura da Microsoft, não a "Web API" em si.
Amir Hossein Ahmadi
resposta desatualizada, visite este link microsoft-techies.blogspot.com/2014/03/…
Ganesh Karewad
41

A diferença básica entre serviços da Web e APIs da Web

Serviço de internet:

1) É um serviço baseado em SOAP e retorna dados como XML.

2) Ele suporta apenas o protocolo HTTP.

3) Não é de código aberto, mas pode ser usado por qualquer cliente que entenda XML.

5) Requer um protocolo SOAP para receber e enviar dados pela rede, portanto, não é uma arquitetura leve.

API da Web:

1) Uma API da Web é um serviço baseado em HTTP e retorna dados JSON ou XML por padrão.

2) Suporta o protocolo HTTP.

3) Pode ser hospedado em um aplicativo ou IIS.

4) É de código aberto e pode ser usado por qualquer cliente que entenda JSON ou XML.

5) Possui arquitetura leve e boa para dispositivos com largura de banda limitada, como dispositivos móveis.

Vaibhav Shiledar
fonte
7
Um serviço web pode ser hospedado em muitos lugares, não só IIS
Ignacio Soler Garcia
3
Praticamente todos os pontos estão errados. Não consigo entender como 40 usuários poderiam ter votado positivamente.
23618 horcrux
1
@horcrux Eu concordo. Um serviço da Web não é necessário, um serviço baseado em SOAP.
Ryan Shillington
a resposta mais confusa que eu já vi.
mhrsalehi
23

API vs Serviço da Web

Acabei de colar o resumo do artigo vinculado:

Resumo:

  1. Todos os serviços da Web são APIs, mas todas as APIs não são serviços da Web.

  2. Os serviços da Web podem não executar todas as operações que uma API executaria.

  3. Um serviço da Web usa apenas três estilos de uso: SOAP, REST e XML-RPC para comunicação, enquanto a API pode usar qualquer estilo para comunicação.

  4. Um serviço da Web sempre precisa de uma rede para sua operação, enquanto uma API não precisa de uma rede para sua operação.

  5. Uma API facilita a interface diretamente com um aplicativo, enquanto um serviço da Web é um ...

Leia mais: Diferença entre API e serviço da Web | Diferença entre | API vs Serviço da Web http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/#ixzz3e3WxplAv

Veja o link acima para a resposta completa.

Zia Ur Rahman
fonte
10
Mas, a pergunta é sobre a diferença entre WebAPI e WebService, não "API"
Kulbhushan Singh
Além disso, o ponto 3 não está correto. É enganoso e ajuda a confundir o tópico "SOAP vs. REST".
precisa saber é
9

para mais detalhes visite este link Diagrama

Adiii
fonte
2
porque? a partir desta imagem, parece que os serviços web SOAP não podem ser usados ​​em smartphones ... ou mesmo em desktops? realmente? alguém está forçando você a ler JSON em vez de XML nessas plataformas?
AndreaCi
se estiver lendo xml, isso não significa que o serviço base SOAP REST também suporta CSV (Command Separated Value), JavaScript Object Notation (JSON) e Really Simple Syndication (RSS).
Adiii 12/08/19
7

Um serviço da Web, se você quiser, é uma API da Web. Especificamente, a API da Web geralmente significa serviço da Web RESTful (baseado em HTTP) e Serviço da Web geralmente significa SOAP + WSDL (+ HTTP ou SMTP ou JMS ..).

Normalmente, os serviços Web RESTful são opostos aos Serviços Web (WSDL, SOAP), mas recentemente foi introduzido o termo serviços Web RESTful (com maiúsculas 'W') que significa RESTful + WSDL + SOAP.

Confira neste gráfico as diferenças entre os três conceitos: http://www2.mokabyte.it/cms/figureproviderservlet?figureId=IUS-6NS-OBV_7f000001_19624184_5621ef4e--Fig02.jpg

Espero que ajude!

Gabe
fonte
4

O serviço da Web é absolutamente o mesmo da API da Web - apenas um pouco mais restrito em termos de formato de dados subjacente. Ambos usam o protocolo HTTP e ambos permitem criar serviços RESTful. E não se esqueça de outros protocolos como JSON-RPC - talvez eles se encaixem melhor.

Vincent
fonte
1
Não é "absolutamente o mesmo" se existem restrições agora, são?
Ojonugwa Jude Ochalifu
0

No contexto do ASP.Net, uma API da Web é um Controller cuja classe base é ApiController e não usa Views. Um serviço da Web é uma classe derivada do WebService e possui geração automática de WSDL. Por padrão, é uma API SOAP, mas você também pode usar JSON adicionando um ScriptServiceAttribute .

jmoffatt
fonte
0

API e serviço da Web servem como um meio de comunicação.

A única diferença é que um serviço da Web facilita a interação entre duas máquinas em uma rede. Uma API atua como uma interface entre dois aplicativos diferentes, para que eles possam se comunicar . Uma API é um método pelo qual fornecedores de terceiros podem gravar programas que se relacionam facilmente com outros programas. Um serviço da Web foi projetado para ter uma interface que é representada em um formato processável por máquina, geralmente especificado em WSDL (Web Service Description Language)

Todos os serviços da Web são APIs, mas nem todas as APIs são serviços da Web.

Um serviço da Web é apenas uma API agrupada em HTTP.


Este artigo aqui fornece um bom conhecimento sobre serviço da Web e API.

KamalDeep
fonte
-2

Bem, o TMK pode estar certo no mundo da Microsoft, mas no mundo de todos os softwares, incluindo Java / Python / etc, acredito que não há diferença. Eles são a mesma coisa.

Ryan Shillington
fonte
-2

Diferença entre Web Service e API Web bem explicada aqui:

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

Texto do link:

Serviços da Web - esse é o padrão definido pelo W3C, para que eles possam ser acessados ​​semiautomática ou automaticamente (WSDL / UDDI). A coisa toda é baseada em XML, para que qualquer pessoa possa chamá-lo. E todos os aspectos do serviço estão muito bem definidos. Há um padrão de descrição de parâmetros, padrão de aprovação de parâmetros, padrão de resposta, padrão de descoberta etc. etc. Você provavelmente poderia escrever um livro de 2000 páginas que descrevesse o padrão. Existem até alguns padrões "adicionais" para fazer coisas "padrão", como autenticação.

Apesar do fato de a invocação e a descoberta automáticas mal estarem funcionando porque os clientes são bastante pobres e você não tem garantia real de que qualquer serviço possa ser chamado de qualquer cliente.

A API da Web é normalmente feita como HTTP / REST, nada é definido, a saída pode ser por exemplo. JSON / XML, a entrada pode ser XML / JSON / ou dados simples. Não há padrões para nada => nenhuma chamada e descoberta automáticas. Você pode fornecer alguma descrição em arquivo de texto ou PDF, retornar os dados no Windows-1250 em vez de unicode etc. Para descrever o padrão, seria um folheto de 2 páginas com algumas informações simples e você definirá todo o resto.

A Web está mudando para a API da Web / REST. Serviços da Web não são realmente melhores que a API da Web. Muito complicado de desenvolver e eles consomem muito mais recursos (largura de banda e RAM) ... e por causa de todas as conversões de dados (PEDIDO-> XML-> DADOS-> RESPOSTA-> XML-> VALIDAÇÃO-> CONVERSÃO-> DADOS) são muito lento.

Por exemplo. No WebAPI, você pode compactar os dados, enviá-los compactados e descompactar + descompactar no cliente. No SOAP, você pode compactar apenas a solicitação HTML.

csh
fonte
-2

Todos os WebServices são API, mas nem toda API é WebServices, a API que é exposta na Web é chamada de Web Services.

Pavan T
fonte
Serviço da Web é o padrão definido pelo W3C, serviço bem documentado para o software de terceiros interagir através de XML (WSDL / UDDI). API Web é a API sobre HTTP, não está bem documentada, tem seu próprio padrão. E a API em geral é algo que pode ou não ter acesso à Internet para conversar com outros aplicativos e também pode ter outros protocolos, por exemplo, API para chamadas do sistema para conversar com seu terminal / cmd no sistema operacional.
Imam Bux
-3

Duas coisas são muito simples de entender,

  1. API: é uma camada no aplicativo que pode atender a outras solicitações de aplicativos localmente.
  2. Serviço da Web: é uma API que pode atender a solicitações e responder através do sistema remoto de rede através da Web ou da Internet.

Nota: Todos os serviços da Web são APIs, mas nem toda API 'é serviços Web

Pavan T
fonte
Localmente, bem como na Web #
Pavan T