S’interfacer avec les services web de Mezzoteam

L’interface de programmation de Mezzoteam est divisée en services web qui traitent chacun d’une partie des fonctionnalités de l’application. On y trouve les services suivants :

  • security : Authentification des utilisateurs
  • directory : Gestion de l’annuaire et des espaces de travail
  • nav : Gestion du changement d’espace de travail
  • documents : Gestion des documents et des vues
  • actions : Actions sur les documents
  • actions_expert : Actions sur les actions
  • workflows : Gestion des processus
  • rules : Gestion des règles appliquées aux documents
  • forums : Gestion du forum de discussion
  • diary : Gestion de l’agenda
  • logs : Gestion des journaux

A chacun de ces services correspond des méthodes et des objets ; leur définition est accessible en ligne, à l’adresse suivante :

http://www.mezzoteam.com/ws/nomservice.asmx

Soit par exemple pour la définition du service web dédié à la sécurité :

http://www.mezzoteam.com/ws/security.asmx

Il est bien sûr possible de travailler « à la main » avec les services web de Mezzoteam, mais Visual Studio nous offre une palette d’outils qui vont nous faire gagner un temps précieux, en prenant en charge toute la logique de communication avec le serveur.

Il est temps maintenant de charger Visual Studio ; Vous allez vous retrouver face à la page d’accueil de votre environnement de développement, qui devrait ressembler à l’image ci-dessous :

Créez un nouveau projet de type « Application Windows Form ». Donnez lui un nom et cliquez sur OK pour afficher votre nouvelle solution.

S’interfacer aux services web

Notre première tâche va être d’interfacer notre projet aux services web de Mezzoteam. Pour se connecter à un service web, la méthode standard consiste à faire dans l’explorateur de solution, situé sur la droite de votre écran, un clic droit sur le libellé « References » ; vous choisissez alors l’option « Ajouter une référence de service », qui va vous guider pas à pas.

Bien que cette méthode fonctionne pour des services web simple, elle n’est pas adaptée à Mezzoteam. En effet, chaque service web de Mezzoteam va définir les mêmes objets User, Document, Workspace, etc. En ajoutant plusieurs services web à notre projet, Visual Studio va renommer automatiquement les définitions portant le même nom ; on se retrouvera donc avec un objet User et un Objet User2, qui décriront tous les deux dans Mezzoteam un utilisateur, mais qui seront vus par Visual Studio comme deux objets distincts et incompatibles.

Heureusement, Microsoft fournit avec Visual Studio un outil disponible en ligne de commande, qui va nous permettre de partager les types d’objets entre les différents services web. Cet outil s’appelle wsdl.exe, et se trouve dans le répertoire C:Program FilesMicrosoft SDKsWindowsv6.0Abin. En tapant la commande :

wsdl /?

Vous obtiendrez la liste de tous les paramètres disponibles pour cette commande. Pour notre part, nous aurons simplement besoin des paramètres suivants :

/o : permet de désigner l’emplacement et le nom du fichier de code résultant
/sharetypes : permet de fusionner les types de nom identiques entre services web
/namespace : permet de spécifier l’espace de noms dans lequel seront placées les méthodes et objets correspondant

Vous trouverez ci-dessous la ligne de commande à exécuter pour générer un fichier C#, base de notre exemple.

wsdl /o:d:mezzoteam_ws.cs /sharetypes /namespace:Mezzoteam http://www.mezzoteam.com/ws/security.asmx http://www.mezzoteam.com/ws/directory.asmx http://www.mezzoteam.com/ws/documents.asmx http://www.mezzoteam.com/ws/files.asmx http://www.mezzoteam.com/ws/forums.asmx http://www.mezzoteam.com/ws/actions.asmx http://www.mezzoteam.com/ws/actions_expert.asmx http://www.mezzoteam.com/ws/logs.asmx http://www.mezzoteam.com/ws/rules.asmx http://www.mezzoteam.com/ws/workflows.asmx http://www.mezzoteam.com/ws/navigation.asmx  http://www.mezzoteam.com/ws/diary.asmx

N’oubliez pas que pour récupérer la définition des services web, il faut que vous soyez connectés !