2010-09-19 14 views

Répondre

1

Je dirais personnellement que vous devriez faire les deux! Renvoyer un code d'état 4xx/5xx approprié pour montrer que quelque chose s'est mal passé et inclure un message dans votre réponse JSON.

E.g. pour une demande réussie:

{ 
    "success": "true" 
} 

Et pour Fail (par exemple 405 Méthode non autorisée):

{ 
    "success": "false", 
    "message": "Requested data not available" 
} 
+0

Merci, mais j'ai une autre question. Je ne connais pas très bien le protocole HTTP. Comment le serveur décide-t-il d'afficher la page 404 par défaut ou mon message d'erreur? – gurghet

+0

Dans le cas de 404, le serveur n'exécuterait pas votre script (à moins que vous n'effectuiez une sorte de réécriture), de sorte que la page d'erreur 404 par défaut serait affichée. Sinon, le serveur devrait utiliser le code + body renvoyé par votre script. – halfdan

+0

Vous devez décider du code HTTP en utilisant la fonction d'en-tête php par exemple

1

Il pourrait être mieux si, vous pouvez aller avec une entité avec deux propriétés comme: Status & Message.

Vous héritez de votre entité de résultat de requête à partir de l'entité ci-dessus.

Si l'opération aboutit, définissez le Status to True sinon définissez Status to False et définissez error message into the Message property of above entity approprié. Rappelez-vous qu'il est préférable de ne pas mettre des erreurs de base de données exactes dans les affichages côté client. Cela peut augmenter les chances d'attaques de piratage, au lieu de cela vous pouvez enregistrer le message exact sur le serveur afin que les personnes concernées puissent vérifier les messages, si quelque chose ne va pas.

Ainsi, if Status=True seul le client peut encore traiter le message (comme l'accès aux propriétés ou les afficher, etc.), else if Status=False, le texte d'erreur fixé à la logique d'accès aux données, dans la propriété Message sera affiché.