[RESOLU] Php fait du webservices

Petit nouveau ! | 4 Messages

29 mai 2013, 00:30

Hello, Je savais pas quoi mettre comme titre mais en tout cas il y a les mots clés dedans
D'ailleurs je ne sais pas trop comment s'appelle ce que je cherche en php...

En fait je développe un logiciel php qui a besoin d'interroger un autre logiciel qui est un boite noire.
Mon projet est bâti sur l'api restfull slimframework donc les webservices clients/serveurs je comprends le concept
Par contre pour que le serveur communique en webservice avec un autre serveur, ça je sais pas faire en php

[client]<------>[serveur]<--------->[boite noire]

Toute la partie client/serveur est développée/fonctionnelle.
Comment je peux faire pour que mon serveur puisse interroger la boite noire ?
Est-ce des classes toutes faites en PHP font ça ? et qui gère les erreurs (try,catch), les timeouts, etc...
Le serveur et la boite noire sont sur le même réseau local

VOilà... que dire d'autre? Merci d'avance pour vos réponses ?
A+
Shensi

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 mai 2013, 11:40

salut,

tu prend le problème à l'envers. Il faut savoir que fournis "la boite noire" comme webservice.
- REST (format de sortie ?)
- SOAP
- Un truc perso (accessible avec http en get / post ?)

en fonction de ces réponse on pourras t'aiguiller.

sinon oui il est possible de consommer un web service php, heureusement même :mrgreen:

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

29 mai 2013, 14:39

Oui j'avais oublié de le préciser...

L'architecture logicielle de la boite noire est (bien sur) attaquable en webservice de type REST au format JSON

Je sais que les réponses de cette boite noire peut m'envoyer aussi du contenu au format xml

Est-ce que j'ai répondu à ta question ?

Merci
A+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 mai 2013, 18:14

presque il me manque le type d'appel, mais je suppose que c'est de l'http get ?

si c'est le cas file_get_contents suffit

par exemple
<?php
$reponseJson = file_get_contents('http://laboitenoire.com/wsjson?data1=1&param2=412');
$reponseData = json_decode($reponseJson);
?>
Après il est aussi possible de passer du json dans l'url ;) (voir url_encode etc etc) si ton web service l'accepte.

Pour du POST utilise curl

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

29 mai 2013, 18:23

Super, c'est à peu près ce que je cherche.
C'est des appels HTTP effectivement GET voire POST, voire PUT je ne sais pas encore.

Du coup, est-ce qu'il existe des classes PHP toute faite pour ce genre de chose ?
Ou bien une fonction qui gère :
- la requête au service web (HTTP GET/POST/PUT/DELETE)
- La gestion des erreurs (try, catch) au cas où le serveur n'est pas dispo, ou ne répond pas dans les temps

Ce genre de chose à déjà été faite, plutôt que de passer du temps à réinventer la roue et comme je sais qu'il y a des experts php dans le coin :-)
Un petit lien ?

Merci encore pour ton aide.
A+

Petit nouveau ! | 4 Messages

29 mai 2013, 21:21

Super, tes réponses ont vraiment su optimiser mes recherches google !

J'ai trouvé ça :
http://www.croes.org/gerald/blog/ecrire ... hp-23/490/
https://developer.decibel.net/sample-code-rest-php

Ces 2 Résultats sont déjà vachement suffisants.

Merci beaucoup !
A+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 mai 2013, 20:03

pas mal,

attention au premier exemple il est basé sur l'activation d'un paramètre : allow_url_fopen.
Si celui est désactivé le code ne peux fonctionner.

Il est préférable d'utiliser curl.


@+
Il en faut peu pour être heureux ......