2010-04-05 8 views
2

J'essaie de créer un service REST dans zend framework. J'utilise zend server.Problème du code d'état HTTP du service Zend Framework REST

Voici mon code:

class ArticleController extends Zend_Rest_Controller 
{ 
    public function postAction() 
    { 
    //Create the acticle and return it 
    $data = array("foo" => 0, "boo" => 11); 
    $this->getResponse()->setHttpResponseCode(201); 
    $this->_helper->json($data); 
    } 

La réponse HTTP renvoie les en-têtes appropriés et des données JSON mais sous les données JSON il y a un document d'erreur apache. La seule façon que je peux penser à retirer le document d'erreur en annexe est d'ajouter ce qui suit dans mon fichier httpd.conf:

ErrorDocument 201 " " 

Mais quel est le moyen de « Corrent » de le faire?

Répondre

2

Votre façon originale est correct. 201 est une réponse appropriée après l'envoi d'une nouvelle ressource.

Je pense que le document d'erreur que vous voyez généré après votre propre contenu ne devrait pas être là. Exécutez-vous Zend Server Community Edition v5.0 par hasard? Si oui, alors voir ce fil, je pense que vous avez rencontré le même problème que l'autre gars là:
How to turn off default HTTP status code errors in Zend Server?

0

Pourquoi utilisez-vous le code 201? 201 signifie que vous avez créé une ressource pour la demande et que vous lui fournissez un lien. Si vous avez l'article et le retournez, vous devez simplement utiliser 200.

Sinon, ce que vous faites semble que la bonne façon, vous supprimez le ErrorDocument associé à l'état de code 201.