Aller au contenu

Webservice


Portekoi

Sujets conseillés

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

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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... ?

Lien vers le commentaire
Partager sur d’autres 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 !

Lien vers le commentaire
Partager sur d’autres 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 :)

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres 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;
}

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...