Diferença entre API da Web e serviço da Web?

Respostas:

86

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, então qualquer um pode 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.

Slawek
fonte
1
graças @Slawek, u explicou better..and graças pelo exemplo também ...
Harish Kurup
2
Na realidade, ouço as pessoas se referirem ao SOAP e ao REST como "serviços da web". A API da Web costuma ser REST.
Ben Thurley 02/03
@Slawek, do jeito que você disse 2000 páginas vs duas páginas, explica a complexidade reduzida. Boa maneira de dizê-lo simplesmente ..
Jaqen H'ghar
20

Um serviço da Web permite comunicações máquina a máquina através de HTTP. Uma API da web é um subconjunto de serviços da web que usam convenções REST (resumindo o artigo da Wikipedia ). Os conceitos definitivamente se sobrepõem. Acredito que ainda exista um link na mente da maioria das pessoas de serviço da web -> SOAP / XML-RPC que possa confundir desnecessariamente os assuntos.

No final, você terá que fazer algumas perguntas para esclarecer o que as pessoas querem dizer. Nem todo mundo faz distinção ou usa os termos de forma intercambiável.

Berin Loritsch
fonte
Thank u @Berin Loritsch, sim isso é certo que provoca confusão entre APIs e WS ..
Harish Kurup
6

Serviços da Web é uma arquitetura e abordagem definidas para um domínio de problema, conforme declarado pelo W3C .

Os serviços da Web fornecem um meio padrão de interoperar entre diferentes aplicativos de software, executando em uma variedade de plataformas e / ou estruturas

A API da Web é um conceito e abstrai os meios de como o conceito é implementado.

Em termos leigos ... a API da Web é motorizada, enquanto o WS é da BMW N53 .

Aaron McIver
fonte