Jump to content
Sign in to follow this  
Portekoi

Webservice

Rate this topic

Recommended Posts

Bonsoir,

J'aurais besoin d'interfacer un serveur (A) où se trouve les données avec un serveur (B) qui lui, n'a que le Php. (Pas de BDD)

Via un webservice, est il possible de gérer une zone membre? Et si oui, par où commencer?

J'ai vu qu'il y avait des standards à respecter (wsdl?) mais je ne sais par où commencer.

Comment sécuriser cette zone membre? Je pensais générer une chaine composée de lettres et de chiffres que je transmettrais à chaque fois à mon WebService pour authentification.

Qu'en pensez-vous? Avez-vous des liens pour débuter?

Autre question un peu liée : j'aimerais que mon site B soit conçu de manière à utiliser des templates. Quel système, ultra léger, je peux utiliser,

Merci d'avance

Portekoi

Share this post


Link to post
Share on other sites

Si tu es en full php, tu n'as pas nécessairement besoin de wsdl, cela dit c'est préférable.

Le mieux est donc de créer un webservice (serveur) sur ton serveur A avec une méthode du genre checkUser($username, $password) : cette méthode renverra ce dont tu as besoin sur b, crédits, id user etc., une chaîne json/xml peut faire l'affaire (l'idéal est tout de même de sécuriser l'appel à ce webservice, https & auth).

Selon le retour du webservice sur b, tu ouvres la session etc.

Tu as un exemple à télécharger en bas de page ici

PS : ne fais pas lez wsdl à la main, c'est long et chiant, tu peux le générer facilement avec un composant Zend

C'est pour codeigniter, mais c'est exactement le même principe pour une classe indépendante : ici, si trouves ca pénible d'insérer la bibliothèque zend, tu peux le générer avec netbeans via un plugin.

Share this post


Link to post
Share on other sites

Merci pour ta réponse.

Je vais regarder l'exemple.

Par contre, je me demande si je dois utiliser SOAP ou non car, même s'il est intégré à PHP5, certains hébergeurs ne l'ont pas activé.

Ne vaudrait il pas mieux passer par cURL + retour des données au format Json que d'utiliser SOAP + wsdl... ?

Share this post


Link to post
Share on other sites

Je dirai que tout dépend des traitements que tu as à faire, si tu as réellement besoin d'échanger des objets et d’interopérabilité etc.

Un peu de lecture : http://www.clever-age.com/veille/blog/soap-vs-rest-choisir-la-bonne-architecture-web-services.html#titre4

Cela dit répondre comme ça est un peu hasardeux sans trop savoir ce qui se cache derrière ton appli. J'ai tendance à utiliser soap par commodité à partir du moment où je dois partager des objets.

Si ton besoin se limite à l'authentification, bof !

Share this post


Link to post
Share on other sites

En gros,

J'ai une page index où je dois récupérer:

Soit 1 prix et divers informations par rapport à un produit (Site de type 1)

Soit gérer une authentification : le mec rempli son email et mdp (md5) et si mon serveur A l'identifie, il a accès à une zone membre (Site de type 2)

Si le site est de type 2 :

Accès à une zone membre où la personne peut modifier son profil (Email, MDP, Prénom, CP etc.)

Accès à une partie consultation de document

En gros :)

Share this post


Link to post
Share on other sites

Je pense que tu dois pouvoir te contenter de consulter de simples requêtes http, prend simplement garde à bien les sécuriser si les données sont sensibles.

Share this post


Link to post
Share on other sites

je n'ai pas de HTTPS donc comment bien sécuriser mes pages?

Share this post


Link to post
Share on other sites

J'ai déjà réalisé plusieurs Webservices, et j'utilise essentiellement SOAP.

Par contre j'utilise un outil pour m'aider à générer de bon WSDL bien documentés : Oxygen.

Pour l'authentification, il faut jouer avec les "header" des différents services, puis après en php c'est relativement simple, tu ajoutes les entêtes à la connexion


function webservices($namespace, $wsdl, $login, $password) {
$Credentials->Login = $login;
$Credentials->Password = $password;

$webservice = new SoapClient(
$namespace.'/'.$wsdl,
array(
'trace' => 1,
'soap_version' => SOAP_1_2,
'style' => SOAP_RPC,
'encoding' => SOAP_LITERAL,
'cache_wsdl' => WSDL_CACHE_NONE
)
);

$header = new SOAPHeader($namespace, 'Credentials', $Credentials,false);
$webservice->__setSOAPHeaders($header);
return $webservice;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...