09-10-2008, 10:50 AM
(Modification du message : 09-10-2008, 11:07 AM par Sephi-Chan.)
Deux approches possibles (il y en a probablement d'autres) :
La deuxième méthode est assez basique et simple à mettre en place. Elle a l'inconvénient d'être assez limitée. Elle ne peut pas gérer l'authentification (ou alors tu authentifie au niveau de HTTP, mais c'est peu pratique).
Par exemple, si le rapatriement des données du jeu est réservé aux joueurs qui payent (c'est juste un exemple iffle, tu ne peux pas le faire avec un simple fichier public.
Un Webservice est plus classe, dans le sens où dans le code source de ton site, tu utilises une classe. Ça pourrait ressembler à ça :
- Le site en question réalise un service Web qui te permet de piocher des informations (dans une BdD, un fichier texte (que ce soit du texte brut, du XML, du JSON, du YAML ou autre), etc.) à l'aide de son API.
- Le site propose un fichier public, ouvert aux gens (en lecture), dans laquelle tu peux venir piocher avec un script.
La deuxième méthode est assez basique et simple à mettre en place. Elle a l'inconvénient d'être assez limitée. Elle ne peut pas gérer l'authentification (ou alors tu authentifie au niveau de HTTP, mais c'est peu pratique).
Par exemple, si le rapatriement des données du jeu est réservé aux joueurs qui payent (c'est juste un exemple iffle, tu ne peux pas le faire avec un simple fichier public.
Un Webservice est plus classe, dans le sens où dans le code source de ton site, tu utilises une classe. Ça pourrait ressembler à ça :
Code PHP :
<?php
/**
* Connexion au service Web du jeu.
*/
$soap = new SoapClient('http://www.monjeu.com/soap_api.wsdl');
try {
$soap->login(
'monLogin',
'monPassword'
);
}
catch(SoapFault $fault){}
/**
* Récupération des informations de mon personnage.
*/
try {
/**
* Les développeurs du jeu ont fait une méthode getCharacterInformations().
* Elle prend comme arguments :
*
* - Un tableau contenant les informations que je veux ;
* - Un tableau optionnel contenant le nom des personnages (associés à mon
* compte) dont je veux avoir les informations. Par défaut, les données
* de tous les personnages de mon compte sont envoyés.
*
* La méthode renvoie un tableau d'objets Personnage.
*/
$result = $soap->getCharacterInformations(
array(
'profil',
'equipment',
'guild'
),
array('Bob')
);
/**
* Maintenant je fais ce que je veux avec ce tableau. :)
*/
}
catch(SoapFault $fault){}
/**
* On se déconnecte du service.
*/
try {
$soap->logout();
}
catch(SoapFault $fault){}
En guise de lien complémentaire, je renvoie vers l'excellent SOAPI d'OVH. Il contient des tas de services SOAP et leur fichier WSDL. Très instructif !
Sephi-Chan