Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je développe actuellement un web-service pour une application. Je suis parvenu pour l'instant à utiliser les adapter REST et xmlrpc, mais je rencontre des difficultés avec json.
J'ai commencé, comme pour chaque adapter, par suivre les instructions données dans la doc de zend, ce qui fonctionne très bien, mais lorsque j'essai de l'adapter à mon application, cela ne fonctionne pas.
Je fais appel au web-service en passant par un Controller (Ws) qui regroupe les différents adapter. Chaque actions du controller me redirige vers un adapter par exemple pour Json : http://...../Ws/json
J’initialise mon Json-rpc dans une fonction run(), qui ce trouve dans la classe de mon adapter json
Le problème est que je ne sais quoi mettre comme url pour le setTarget.
Voici le code que j’utilise :
j'ai commenté le return, ce qui me permet de voir mon "serveur" je vois le contenu de ma classe Ws_handler mais a la fin j'ai une erreur :
{"result":null,"error":{"code":-32600,"message":"Invalid Request","data":null},"id":null}
public function run() { $this->_json = new Zend_Json_Server (); $this->_json->setClass ( 'Ws_Handler' ); if ('GET' == $_SERVER ['REQUEST_METHOD']) { // Indicate the URL endpoint, and the JSON-RPC version used: $this->_json->setEnvelope ( Zend_Json_Server_Smd::ENV_JSONRPC_2 ); //setTarget('/library/Ws/Adapter/Json.php')-> // Grab the SMD $smd = $this->_json->getServiceMap (); // Return the SMD to the client header ( 'Content-Type: application/json' ); echo $smd; //return; } $this->_json->handle (); exit (); }
merci d'avance pour votre aide
ps si je laisse le return il me met fichier introuvable
Hors ligne
bon j'ai fini par réussir à faire fonctionner mon webservice
public function run() { $this->_json = new Zend_Json_Server (); $this->_json->setClass ( 'Ws_Handler' ); if ('GET' == $_SERVER ['REQUEST_METHOD']) { // Indicate the URL endpoint, and the JSON-RPC version used: $this->_json->setEnvelope ( Zend_Json_Server_Smd::ENV_JSONRPC_2 ); // Grab the SMD $smd = $this->_json->getServiceMap (); // Return the SMD to the client header ( 'Content-Type: application/json' ); echo $smd; exit; } $this->_json->handle (); exit (); }
Hors ligne