View Single Post

  #8 (permalink)  
Old 04-05-2008, 02:25 AM
Want3d's Avatar
Want3d Want3d is offline
Member
 
Join Date: May 2008
Posts: 40
Default

Salut tout le monde heureusement je suis passé par ici ..
avant de Commencer Mr/Mlle..je vais Proposer une sorte de leçon pour c'eux qui ont interressé..donc une fois la librairie sur ton pc et placée dans un sous repertoire où va se trouver votre fichier webservice nous allons pouvoir commencer a voir comment créer votre webservice
Vous devez créer un fichier pour votre webservice nous allons le nommer par exemple webservice.php.

<?
require_once("lib/nusooap.php"); //on inclut la librairie necessaire pour mettre en place le webservice

$server = new soap_server(); //on initialise un nouvel objet serveur

$server -> configureWSDL('Nom du webservice','Namespace'); // on configure en donnant un nom et un Namespace

$server -> wsdl->schemaTargetNamespace = 'emplacement du namespace'; //on spécifie l'emplacement du namespace

?>


Votre webservice est créé il vous faut maintenant ajouter des méthodes et le faire communiquer avec les différents clients..nous allons voir ici comment ajouter des methodes dans votre webservice en prenant un exemple simple nous allons créer une méthode qui prend en argument une chaine de caractéres et qui la renvoie..dans votre fichier webservice.php, à la suite du code dèja écrit nous allons rajouter les lignes suivantes:

//on enregistre la méthode grâce à register('NomDeLaMethode','argument passé en parametre','nom de la variable retrounée')
$server->register('ReturnChaine',array('ChaineString'=>' xsd:string'),array('return'=>'xsd:string'),'Namesp ace');

//nous créons ici la fonction ReturnChaine qui correspond à la méthode créée dans le webservice
function ReturnChaine($ChaineString) {
return new soapval('return','string',$ChaineString);
}


$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);


nous avons vu dans cet exemple comment retourner une chaine de caractère un exemple assez simple il est aussi possible de renvoyer des tableaux grace aux methodes lorsqu'on souhaite extraire des éléments d'une base de données
Votre webservice uploadé vous pouvez le visualiser vous obtiendrez l'écran suivant:

Vous pouvez accéder au contrat WSDL (Web Service Description Language) au format XML qui décrit les possibilités et la configuartion du webservice.

donc il reste maintenant que l'implémentation du client..alors Application cliente sous .Net..
Tout d'habord nous allons voir dans cette partie comment créer une application cliente en .Net qui accedera aux méthodes implémentées dans notre webservice pour cela nous créons un nouveau projet en C# en windows application.
Afin de tester la méthode ReturnChaine placez les éléments suivants: une TextBox, un Bouton, ainsi qu'un label pour afficher le résultat renvoyé par le webservice

Vous devez ajouter une nouvelle référence web pour votre webservice afficher le contrat WSDL pour pouvoir ajouter la référence...

la manipulation suivante consiste à ajouter à l'événément click du bouton le code suivant:

private void button1_Click(object sender, System.EventArgs e)
{
Url-de-votre-site-a-l'envers.Nomduwebservice WebService = new Url-de-votre-site-a-l'envers.Nomduwebservice();
label1.Text = WebService.ReturnString(textBox1.Text);

}


vous pouvez compiler votre application entrer une chaine de caractères dans la textbox, puis cliquer sur le bouton "connexion". La chaine de caractères sera transmise en argument à la méthode ReturnChaine du webservice, puis renvoyée et affichée dans le label et on passe pour Application cliente en PHP nous avons vu précédemment comment réaliser une application cliente grace à la technologie .Net. Dans cette sous partie nous allons implémenter une application cliente grace à la technologie PHP..

// on inclue librairie NuSOAP
require_once(lib/nusoap.php');


$parameters = array(ChaineString =>'Ici passé la chaine de caractère que vous souhaitez');
//On crée une connexion au webservice
$s = new soapclient('http://adresse du webservice/webservice.php');

// on appelle la methode ReturnString et on passe en argument le tableau contenant la chaine de caractere
$ResulatRenvoyé = $s->call('ReturnString',$parameters);
// la fonction getError permet d'afficher les erreurs renvoyés par le webservice
if(!$error = $s->getError()){
echo $ResulatRenvoyé;
} else {
echo 'Erreur renvoyé par le webservice: '.$error;
}


Bref nous avons pu voir dans cet article comment développer un webservice en PHP accessible par différentes technologies telles que Microsoft .Net, Java et PHP.
Comme pour pour les autres technologies dans lesquelles sont développés les webservices il est possible de construire des méthodes plus complexes avec de accès aux bases de données et un véritable traitement de l'information..

Mr/Mlle Merci pour votre Collaboration
Reply With Quote