Définir les différences entre SOAP, OData, REST et API

Effectué

Le protocole SOAP (Simple Object Access Protocol) est un protocole de messagerie basé sur XML. Il permet à différents processus (distants) de communiquer. SOAP s’appuie sur HTTP(S), SMTP ou FTP pour la négociation et la transmission des messages. Le protocole SOAP n’est pas facile à utiliser.

Le type de modèle de messagerie le plus courant dans SOAP est l’appel de procédure distante (RPC), où un nœud de réseau (le client) envoie un message de requête à un autre nœud (le serveur) et le serveur envoie un message de réponse au client. RPC utilise l’enveloppe SOAP, qui définit la structure du message et son traitement.

Pour utiliser SOAP, le client qui se connecte à Business Central Server doit être en mesure de comprendre les messages SOAP. Dans .NET Framework, les services SOAP sont pris en charge depuis le lancement de Windows Communication Framework (WCF) en version 3.0.

Un service SOAP expose un fichier WSDL (Web Services Description Language) qui décrit comment le service peut être appelé, les paramètres auxquels il s’attend et la structure de données qu’il renvoie. Ce fichier est un document basé sur XML et destiné à être lu par des machines, et non par l’homme.

Business Central prend également en charge Open Data Protocol, ou OData, qui est aussi un protocole ouvert conçu pour utiliser et interroger les API RESTful. Une API désigne un ensemble de routines et protocoles permettant de communiquer entre différents composants logiciels. Les API sont utilisées depuis de nombreuses années, et la quasi-totalité des logiciels disposaient d’une API qui permettait à d’autres programmes d’utiliser certaines fonctionnalités du logiciel. La bibliothèque Win32, par exemple, est une API Windows bien connue qui permet d’exécuter des applications plus anciennes sur des versions plus récentes de Windows.

À l’heure actuelle, les API sont utilisées le plus souvent dans des applications web. Toute grande application web comme Facebook, LinkedIn, Microsoft Graph, etc. permet de se connecter à l’aide d’API pour améliorer l’expérience de l’application web ou utiliser les données fournies par l’application web. Si ces API suivent l’architecture REST, elles sont appelées API RESTful. REST est une architecture de services web qui peuvent fonctionner à l’échelle d’Internet. Autrement dit, ils peuvent gérer de nombreuses connexions et requêtes provenant du web. Ces services sont sans état. Autrement dit, vous pouvez demander des données au serveur, puis le serveur répond mais ne conserve pas d’état ou de session interne sur la requête. Le serveur ferme la connexion après la réponse.

Ces transferts ne peuvent se produire qu’au moyen de HTTP(S) et REST prend en charge JSON et XML. Cependant, JSON est le format le plus utilisé conjointement avec les services REST.

L’avantage significatif de REST est la façon dont vous pouvez appeler les services REST. Pour effectuer ces appels, vous pouvez utiliser une URL qui utilise des verbes HTTP standard comme GET, POST, PUT et DELETE. Chaque langage de programmation capable d’envoyer des requêtes HTTP peut fonctionner avec les services REST, ce qui se traduit par des performances et une évolutivité bien plus élevées que SOAP. De plus, comme il s’agit d’une requête HTTP, les navigateurs ou le serveur peuvent mettre en cache les réponses.

OData repose sur les services REST et permet de les interroger. Par exemple, en fournissant des paramètres de requête supplémentaires à une URL, vous pouvez limiter ou filtrer l’ensemble de résultats. OData est facile à utiliser pour les opérations CRUD. Lorsque SOAP expose un document WSDL, OData expose un document EDMX, qui comporte des métadonnées pour tous les services web publiés.

OData utilise différents formats pour représenter les données et le modèle de données. Le format JSON est le standard, mais le format Atom est également disponible avec OData. Atom est également un format basé sur XML et utilisé pour les flux web (comme les flux d’actualités). Le document EDMX est créé en tant que document XML. OData utilise donc une combinaison de différents formats de fichier.