API vs. serviço da Web [fechado]


205

Qual é a diferença entre um serviço da web e uma API? A diferença é maior que o protocolo usado para transferir dados? obrigado.


3
Por API, você quer dizer uma API acessada por HTTP? Ou apenas uma API comum comum?
21119 Pablo Santa Cruz



Você deve estar brincando comigo. 122 upvotes e a questão é quebrada devido aos níveis de mistura.
Joshua

você me pegou, eu não sei por que esta pergunta foi fechada
chips de

Respostas:


173

Uma API (Application Programming Interface) é o meio pelo qual terceiros podem escrever código que faz interface com outro código. Um serviço da Web é um tipo de API, que quase sempre opera sobre HTTP (embora alguns, como SOAP, possam usar transportes alternativos, como SMTP). A definição oficial do W3C menciona que os Serviços da Web não necessariamente usam HTTP, mas esse é quase sempre o caso e geralmente é assumido, a menos que mencionado de outra forma.

Para exemplos de serviços da web especificamente, consulte SOAP , REST e XML-RPC . Para um exemplo de outro tipo de API, um escrito em C para uso em uma máquina local, consulte a API do Kernel do Linux .

No que diz respeito ao protocolo, uma API de serviço da Web quase sempre usa HTTP (daí a Web part) e definitivamente envolve a comunicação através de uma rede. As APIs em geral podem usar qualquer meio de comunicação que desejarem. A API do kernel Linux, por exemplo, usa interrupções para chamar as chamadas do sistema que compõem sua API para chamadas do espaço do usuário.


8
Você consideraria todos os serviços da Web como API? Que tal ao usar o AJAX para recarregar uma região de uma página da Web, em vez de recarregar a página inteira? Não vejo isso necessariamente como uma API, mesmo que um serviço da web esteja envolvido. Caso contrário, podemos afirmar que, para cada parte da função já criada, seja em uma DLL ou JAR, serviço da Web ou código simples, todas as APIs. Para uma API ser API, é necessário ter em mente desenvolvedores de terceiros e a API não deve ter nenhuma dependência do produto final (o aplicativo que está usando a API).
Ronald

18
Sim, todo serviço da Web é uma API. Sim, um serviço da Web AJAX é uma API, não é documentado e, portanto, não é realmente destinado ao consumo público. Nem toda API é uma API projetada para consumo de terceiros. Você também pode ter APIs internas.
21914 Ryan Shillington

54

Basicamente, um serviço da web é um método de comunicação entre duas máquinas, enquanto uma API é uma camada exposta, permitindo que você programe contra alguma coisa.

Você pode muito bem ter uma API e o principal método de interação com essa API é por meio de um serviço da web.

As definições técnicas (cortesia da Wikipedia) são:

API

Uma interface de programação de aplicativos (API) é um conjunto de rotinas, estruturas de dados, classes de objetos e / ou protocolos fornecidos por bibliotecas e / ou serviços do sistema operacional, a fim de apoiar a construção de aplicativos.

Serviço de internet

Um serviço da Web (também serviço da Web) é definido pelo W3C como "um sistema de software projetado para oferecer suporte à interação interoperável máquina a máquina através de uma rede"


4
Eu estou bem com alguém que se oponha à minha resposta, mas ficaria curioso para saber o porquê.
Mark Biek

41
Sua resposta implica que APIs e serviços da Web são distintos, quando na verdade um serviço da Web é um tipo de API. Como o cerne desta questão é qual é a diferença entre os dois, é importante que a resposta esclareça que os serviços da web são um tipo de API.
Andrew Cholakian

3
Interessante. Vou ter que (respeitosamente :)) discordar. Mas eu aprecio o feedback.
Mark Biek

44

Em um sentido genérico, um serviço da web um serviço da Web É uma API sobre HTTP. Eles geralmente utilizam JSON ou XML, mas também existem outras abordagens.


20
Portanto, todos os serviços da web são API, mas nem toda API é um serviço da web?
chips

13
Certo, APIs podem ser bibliotecas como DLLs, JARs ou OCX etc .. Eles também podem ser uma distribuição de código-fonte como Facebooks' PHP api ...
CGP

10

APIs são uma interface publicada que define como o componente A se comunica com o componente B.

Por exemplo, a Doubleclick possui uma API Java publicada que permite aos usuários interrogar as tabelas do banco de dados para obter informações sobre sua campanha de publicidade online.

por exemplo, chame GetNumberClicks (nome de usuário)

Para implementar a API, você deve adicionar o arquivo .jar do Doubleclick ao seu caminho de classe. A chamada é local.

Um serviço da web é uma forma de API em que a interface é definida por meio de um WSDL. Isso permite a chamada remota de uma interface através de HTTP.

Se a Doubleclick implementasse sua interface como um serviço da Web, eles usariam algo como o Axis2 em execução no Tomcat.

O usuário remoto ligaria para o serviço da web

por exemplo, chame GetNumberClicksWebService (nome de usuário)

e o serviço GetNumberClicksWebService chamaria GetNumberClicks localmente.


Essa pergunta é muito antiga, mas observarei que essa resposta confunde APIs e interfaces. Uma API é mais do que uma interface publicada (que incluiria coisas como SOAP); é a interface pública para um aplicativo ou serviço específico. Seria mais preciso dizer algo como "APIs são componentes que possuem uma interface publicada pela qual componentes de terceiros podem interagir com eles".
JDB ainda se lembra de Monica

7

API (Application Programming Interface), o próprio formulário completo sugere que é uma interface que permite programar para o seu aplicativo com a ajuda ou o suporte de alguma outra interface do aplicativo que expõe algum tipo de funcionalidade útil ao seu aplicativo.

Por exemplo, mostrar taxas de câmbio atualizadas no seu site precisaria de alguma interface de terceiros para programar, a menos que você planeje ter seu próprio banco de dados com taxas de câmbio e atualizações regulares para o mesmo. Esse conjunto de funcionalidades é quando já está disponível com outra pessoa e quando eles querem compartilhá-lo com outras pessoas, eles precisam ter um ponto de extremidade para se comunicar com os demais interessados ​​em tais interações, para implantá-lo na Web por meio de Web- Serviços. Esse ponto final nada mais é do que a interface do aplicativo que você pode programar em relação à API.


4

API é integração baseada em código, enquanto serviço da Web é integração baseada em mensagem com padrões interoperáveis ​​que possuem um contrato como WSDL.


Não tenho certeza de que sua resposta adicione algo às respostas existentes.
22612

3

Pense no serviço da Web como uma API da Web. API é um termo tão geral agora, portanto um serviço da Web é uma interface para a funcionalidade, geralmente relacionada aos negócios, que você pode acessar da rede através de uma variedade de protocolos.


1

Verifique isto http://en.wikipedia.org/wiki/Web_service

Como o link mencionado, a API da Web é um desenvolvimento em serviços da Web que provavelmente se relaciona à Web 2.0, enquanto os serviços baseados em SOAP são substituídos por comunicações baseadas em REST. Observe que os serviços REST não requerem definições de API de serviço XML, SOAP ou WSDL, portanto, isso é muito diferente do serviço da web tradicional.


0

outro exemplo: api do google map vs serviço da web api de direção do google, enquanto o primeiro serve (entrega) o arquivo javascript no site (que pode ser usado como um api para fazer novas funções), o posterior é um serviço da web Rest, que fornece dados ( no formato json ou xml), que pode ser processado (mas não usado no sentido da API).


1
Uhm ... javascript pode ser retornado como dados e depois usado como código, este não é um contraste válida
David C
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.