L'édition de textes avec LaTeX

Les services web peuvent suivre deux typologies de communication : SOAP et REST. Pour ma part je ne parlerai que de la version SOAP des WebServices, ce qui permettra de réaliser l'ensemble de ce que l'on souhaite obtenir avec un service Web. Le cadre suivi sera de réaliser le service Web en PHP (pour faire tourner le service sur n'importe quel site hébergé et pas seulement sur un VPS ou une machine louée à la Windows) et de proposer deux clients qui vont consommer ce service : un client PHP ainsi qu'un autre réalisé avec le Framework .NET (oui tout de même).

Comment fonctionne un Web Service ?

Un service web repose sur une communication à base de document XML entre le serveur et son client. Enoncé comme cela peut signifier que la mise en place est simple. Et bien non, ce n'est pas simple...mais pas forcément compliqué non plus si l'on s'appuie sur les bons outils. Je vous laisse regarder les références présentes en sidebar de cette page afin de bien vous imprégner de cet univers impitoyable...

Dans l'idée, le client qui veut consommer un Web Service va commencer par interroger la page Web afin de déterminer quelles sont les opérations qui sont mises à sa disposition. Ce sont les services exportés par le Web Service et avec lesquels il va être possible d'interagir. Une fois ces opérations récupérées, il ne reste plus qu'à lancer l'appel à ces méthodes afin de réceptionner le résultat que l'on espère...

Un serveur en PHP

J'ai décidé de mettre en place un service web à base de PHP pour une raison simple : la majorité des serveurs web reposent sur le paradigme Apache + Php + MySQL et représentent le plus faible investissement pour cette réalisation. Une autre raison pourrait être de ne pas m'imposer une architecture hyper propriétaire telle que celle de Microsoft et de son langage C# pour cette réalisation. Il aurait alors fallu mettre en place un hébergement sur une plateforme Windows (licence onéreuse) et mettre en place un hébergement Web reposant sur ASP + IIS. C'est moins immédiat et représente trop de contraintes pour un simple Web Service (même pour un Web service complexe... ;-) )

Il existe de nombreuses façons de mettre en place un serveur SOAP en PHP. Nous allons commencer par utiliser ce qui est normalement inclus d'origine avec tous les serveurs Web : la bibliothèque PHP-SOAP. Si vous ne savez pas si votre environnement PHP a été compilé avec le support de SOAP, créez simplement un fichier contenant , enregistrez-le sur votre serveur sous le nom phpinfo.php (par exemple, mais tout autre nom fera l'affaire) et pointez votre navigateur internet vers ce fichier. Vous devriez obtenir ceci :

Et en regardant un peu plus bas dans le document, vous pouvez obtenir plus de détail si l'extension SOAP a bien été compilée avec PHP :
Si vous n'avez pas cette bibliothèque, regardez plus bas dans le document qui vous explique comment utiliser une bibliothèque externe qui s'appelle NuSOAP. Elle vous rendra bien service et c'est d'ailleurs cette bibliothèque que je vous conseille d'utiliser, que vous ayez l'extension SOAP d'origine ou pas dans votre serveur Web/PHP...

Avec notre service Web, nous n'allons faire que deux choses simples : dire "Bonjour" et additionner deux nombres. Je sais que vous allez me dire qu'il aurait été plus judicieux de ne pas faire un exemple bateau mais proposer une interaction avec une base de données par exemple... Certes, mais on est ici pour comprendre le mécanisme du Web Service, pas pour développer une application globale non ? Je vous donne le code complet et les commentaires ensuite.


Class MonService
{
  function bonjour($qui)
  {
    return "Bonjour $qui";
  }
  function ajouter($a, $b)
  {
    return $a + $b;
  }
}

// Désactiver le cache WSDL lors de la phase de test à réactiver en production
ini_set("soap.wsdl_cache_enabled", "0");

// Création du service Web
$server = new SoapServer(null,
	array('uri' => 'http://www.gerbelotbarillon.com/WebServiceSOAP/SrvMath2.php'));
// Ajout de la classe dans les éléments proposés par le WebService
$server->setClass('MonService');
$server->handle();
         

Il existe de nombreuses façons de mettre en place un serveur SOAP en PHP. Nous allons commencer par utiliser ce qui est normalement inclus d'origine avec tous les serveurs Web : la bibliothèque PHP-SOAP. Si vous

Installer la DLL

Commençons par créer un nouveau projet basé sur une Form Windows basique. Ajoutez une référence à votre DLL en faisant un clic droit sur Références puis Ajouter une référence... et enfin Parcourir....

Une fois cette référence incluse, ajoutez une directive using whatis; en début de fichier de classe afin de pouvoir utiliser les méthodes de la DLL. La commande using va permettre de renseigner en fait le namespace de la classe servant de support à la DLL.

Il ne reste plus ensuite qu'à ajouter un bouton ainsi qu'un événement Click pour appeler la méthode affiche() de la DLL et ainsi faire apparaître le Messagebox.


using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using whatis;

namespace TestWhatisDLL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // whatis.whatis est le type qui correspond au nom de la classe avec le nom du namespace
            whatis.whatis w = new whatis.whatis();
            w.affiche();
        }
    }
}
            

© LGB - 201x+