Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 01-06-2012 15:48:12

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

Bonjour,

Je voudrais mettre en place un API, ou plutot un webservice avec ZF. J'ai lu pas mal de sujet sur çà, et je n'arrive pas à faire un choix.

Je fourni une api ou un webservice pour que les developpeurs (pas forcement avec Zend) puissent récupérer des infos de la bdd, en xml ou json.
Doit-on faire çà en GET (comme l'api de twitter par exemple), url visible ?

Le composant Zend_Rest est-il le plus pratique, le plus sécurisé ?

Merci
Fabrice

Dernière modification par __fabrice (18-06-2012 20:51:14)

Hors ligne

 

#2 04-06-2012 09:35:26

lebilien
Membre
Lieu: avranches
Date d'inscription: 19-06-2007
Messages: 270
Site web

Re: Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

tu peut faire du soap avec zend cela marche super bien smile


http://www.parkaddict.com Gagner des places dans vos parcs préférés

Hors ligne

 

#3 04-06-2012 09:44:31

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

Salut,
Ha ok, Soap... On me conseille plutot REST (Zend_Rest), qui est plus facile parait-il. As tu des exemples avec Zend et Soap ?

Merci
Fabrice

Hors ligne

 

#4 04-06-2012 15:45:52

lebilien
Membre
Lieu: avranches
Date d'inscription: 19-06-2007
Messages: 270
Site web

Re: Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

soap c'est super simple un controller client et un controller server .

Code:

<?php


require_once  APPLICATION_PATH.'/models/webservice.php';

 ini_set("soap.wsdl_cache_enabled", "0");
require_once LIBRARY_PATH.'/Zend/Soap/AutoDiscover.php';
require_once LIBRARY_PATH.'/Zend/Soap/Server.php';
class WsController extends Zend_Controller_Action {
 
    public function indexAction() {
        
        //echo "lol";
        if (is_null($this->getRequest()->getParam('wsdl'))) {
            // Traitement de la requ�te
            
        
            $_config= new Zend_Config_Ini(PROJET_PATH.'/configs/config.ini',"urlws",true);
            
        
            $server = new Zend_Soap_Server($_config->urlws->url.);
            //$server->setObject(new EasyWifi_Service());
            $server->setClass('webservice');
            $server->handle();
            
            
            
        } else {
            // Retour de la WSDL
            //'Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence'
            $wsdl = new Zend_Soap_AutoDiscover();
            
/*            
                $wsdl->setBindingStyle(
                                        array('style' => 'rpc')
                                        );
            $wsdl->setOperationBodyStyle(
                                        array('use' => 'encoded'
                                        ));*/
            $wsdl->setClass('webservice');
    
            $wsdl->handle();
        }
        exit;
    }
 
}


?>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

exemple de code controller Wscontroller . La doc soap pour Zend est super simple et tu as un Webservice qui fonctionne . Zend_Rest j'ai jamais réussi à le faire fonctionner lol mais faudrait que j'essai de nouveau smile


http://www.parkaddict.com Gagner des places dans vos parcs préférés

Hors ligne

 

#5 04-06-2012 19:51:47

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

Je teste REST comme j'ai vu dans divers exemple, dans un contexte MVC :

Code:

<?php

 class ApiController extends Zend_Rest_Controller {

  // Handle GET and return a list of resources
    public function indexAction() {}

    // Handle GET and return a specific resource item
    public function getAction() {}

    // Handle POST requests to create a new resource item
    public function postAction() {}

    // Handle PUT requests to update a specific resource item
    public function putAction() {}

    // Handle DELETE requests to delete a specific item
    public function deleteAction() {}
}
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Et en passant par curl pour tester

Code:

curl http://zf.test/api/
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

j'ai ce message

Code:

Fatal error: Class ApiController contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Zend_Rest_Controller::headAction) in
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

Je me suis qu'il fallait rendre la classe abstraite et que la classe qui hérite est celle qui doit servir d'API, mais çà change rien.

Une idée ?,

Fabrice

Dernière modification par __fabrice (04-06-2012 19:52:38)

Hors ligne

 

#6 18-06-2012 20:50:45

__fabrice
Membre
Date d'inscription: 25-04-2007
Messages: 131

Re: Webservice et/ou API ?, Zend_Rest ou autres ? [RESOLU]

Salut,

Il faut juste implémenter la méthode "headAction"

Fabrice

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages