J'écris un helper de contrôleur qui définit les en-têtes de réponse appropriés pour mon action de contrôleur REST. Il est collé ci-dessous et devrait être assez simplifié pour ceux qui ne sont pas familiers avec Zend Framework pour comprendre ce que je fais.Ces codes de réponse HTTP REST sont-ils corrects et qu'en est-il du type de contenu?
Ma question est: Ces codes sont-ils corrects pour leurs réponses respectives, et dans le cas d'un «accès refusé», est-ce que j'utilise un 401 ou un 403?
De même, en cas de réponse avec une erreur, je comprends que je devrais placer un message dans le corps de la réponse, mais devrais-je définir le "Content-Type" sur "text/plain"?
<?php
class App_Controller_Helper_RestResponse extends Zend_Controller_Action_Helper_Abstract
{
public function denied()
{
// 403 or 401?
}
public function notFound()
{
// 404
}
public function created()
{
// 201
}
public function deleted()
{
// 204
}
public function redirect()
{
// 301
// new url
}
public function malformed()
{
// 400
}
public function gone()
{
// 410
}
}
Ok, donc si un utilisateur N'A PAS été identifié (authentifié), alors je devrais probablement le rediriger vers une page de connexion. se s'ils se sont connectés et essayent d'accéder à une ressource dont ils n'ont pas l'autorisation, je devrais répondre avec un 403. Bon son? – talentedmrjones
Oui, s'ils ne se sont pas connectés, envoyez-leur un 401 avec l'en-tête WWW-Authenticate pointant vers la page de connexion. S'ils sont connectés, et qu'ils font quelque chose que vous ne voulez pas qu'ils fassent, envoyez simplement le 403. – stinkymatt