web-dev-qa-db-fra.com

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

J'ai beaucoup entendu parler des services Web et des API Web, y a-t-il une différence entre eux ou sont-ils les mêmes?

86
Harish Kurup

Services Web - c'est la norme définie par le W3C, afin qu'ils soient accessibles semi-automatiquement ou automatiquement (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 y a la norme de description des paramètres, la norme de passage des paramètres, la norme de réponse, la norme de découverte, etc. etc. Vous pourriez probablement écrire un livre de 2000 pages qui décrirait la norme. Il existe même des normes "supplémentaires" pour faire des choses "standard", comme l'authentification.

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

L'API Web se fait généralement en HTTP/REST, rien n'est défini, la sortie peut être par exemple. JSON/XML, l'entrée peut être XML/JSON/ou des données simples. Il n'y a pas de normes pour quoi que ce soit => pas d'appel et de découverte automatique. Vous pouvez fournir une description dans un 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.

Le Web bascule vers l'API Web/REST. Les services Web ne sont vraiment pas meilleurs que l'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 (DEMANDE-> XML-> DONNÉES-> RÉPONSE-> XML-> VALIDATION-> CONVERSION-> DONNÉES) sont très lent.

Par exemple. Dans WebAPI, vous pouvez compresser les données, les envoyer compressées et décompresser + décompresser sur le client. Dans SOAP vous ne pouviez que compresser la requête HTML.

89
Slawek

Un service Web permet des communications machine à machine via HTTP. Une API Web est un sous-ensemble de services Web qui utilise les conventions REST (résumant article Wikipedia ). Les concepts se chevauchent certainement. Je pense qu'il existe toujours un lien dans l'esprit du service Web de la plupart des gens -> SOAP/XML-RPC qui peut confondre inutilement les choses.

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

20
Berin Loritsch

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

Les services Web fournissent un moyen standard d'interopérabilité entre différentes applications logicielles, fonctionnant sur une variété de plateformes et/ou de framework

L'API Web est un concept et résume les moyens de mise en œuvre du concept.

En termes simples, l'API Web est à moteur tandis que WS est à BMW N5 .

6
Aaron McIver