Différence entre l'API Web et le service Web?

Réponses:

86

Services Web - définis de manière standard par le W3C, ils peuvent donc être accessibles de manière semi-automatique ou automatique (WSDL / UDDI). Le tout est basé sur XML, donc tout le monde peut l'appeler. Et chaque aspect du service est très bien défini. Il existe une norme de description de paramètres, une norme de transmission de paramètres, une norme de réponse, une norme de découverte, etc. Vous pourriez probablement écrire un livre de 2 000 pages décrivant la norme. Il existe même des normes "supplémentaires" pour la réalisation de tâches "standard", telles que l'authentification.

Malgré le fait que l'appel et la découverte automatiques fonctionnent à peine, car les clients sont plutôt pauvres, et vous n'avez aucune garantie réelle qu'un service puisse être appelé à partir de n'importe quel client.

L'API Web est généralement réalisée sous la forme HTTP / REST, rien n'est défini, la sortie peut être pour, par exemple. JSON / XML, l’entrée peut être XML / JSON / ou des données en clair. Il n'y a aucune norme pour quoi que ce soit => pas d'appel automatique ni de découverte. Vous pouvez fournir une description sous forme de fichier texte ou PDF, vous pouvez renvoyer les données dans Windows-1250 au lieu d'unicode, etc. Pour décrire la norme, ce serait une brochure de 2 pages avec quelques informations simples et vous définirez tout le reste.

Web est en train de basculer vers Web API / REST. Les services Web ne sont vraiment pas meilleurs que les API Web. Très compliqué à développer et ils consomment beaucoup plus de ressources (bande passante et RAM) ... et à cause de toutes les conversions de données (REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA) sont très lent.

Par exemple. Dans WebAPI, vous pouvez compresser les données, les envoyer compressées et les décompresser + décompresser sur le client. Sous SOAP, vous pouvez uniquement compresser une requête HTML.

Slawek
la source
1
merci @ Slawek, vous l'avez expliqué mieux..et merci pour l'exemple aussi ...
Harish Kurup
2
En réalité, j'entends des gens appeler SOAP et REST des "services Web". Cependant, les API Web ont tendance à être REST.
Ben Thurley
@ Slawek, comme vous l'avez dit 2000 pages vs quelques pages, explique la complexité réduite. Bonne façon de le dire simplement ..
Jaqen H'ghar
20

Un service Web permet aux communications machine à machine via HTTP. Une API Web est un sous-ensemble de services Web qui utilisent les conventions REST (Résumé de l'article Wikipedia ). Les concepts se chevauchent vraiment. Je pense qu'il existe encore dans la plupart des gens un lien entre les services Web -> SOAP / XML-RPC, qui peut compliquer inutilement la situation.

À la fin, vous devrez poser quelques questions pour clarifier ce que les gens veulent dire. Tout le monde ne fait pas de distinction ni n'utilise les termes de manière interchangeable.

Berin Loritsch
la source
Merci @Berin Loritsch, ouais, c'est vrai, cela crée une confusion entre les API et WS.
Harish Kurup
6

Les services Web constituent une architecture et une approche définies d'un domaine problématique, comme indiqué par le W3C .

Les services Web constituent un moyen standard d'interopérabilité entre différentes applications logicielles, s'exécutant sur diverses plates-formes et / ou infrastructures.

La Web API est un concept et résume les moyens de son implémentation.

En termes simples, l'API Web est au moteur alors que WS est à la BMW N53 .

Aaron McIver
la source