Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
serveurscrutari:json:messages [2011/03/20 18:00]
vincent
serveurscrutari:json:messages [2011/03/21 20:16]
vincent
Ligne 1: Ligne 1:
 ====== Messages d'​erreur ====== ====== Messages d'​erreur ======
  
-En cas d'​erreur de programmation (par exemple, un paramètre obligatoire manquant), le serveur renvoie un objet JSON particulier ​appelé « message ​de commande » qui comprend une clé indiquant ​l'erreur relevée. Un message de commande peut relever plusieurs erreurs à la fois.+En cas d'​erreur de programmation (par exemple, un paramètre obligatoire manquant), le serveur renvoie un objet JSON particulier ​nommé //error// à la place de l'objet attendu.
  
-Les messages d'erreur ​sont réservés aux bogues ​du côté client, tout ce qui est susceptible ​de découler d'une mauvaise ​saisie de l'​utilisateur ​n'est pas traitée comme erreur. Par exemple, si l'internaute envoie ​une séquence de recherche composée de caractères ​non textuels ​(par exemple, ​« "'​(\ »), le serveur ​ne va pas envoyer de messages ​d'​erreur ​mais simplement ​un résultat vide. En l'​occurence,​ il renverra ​un objet //​ficheSearchResult//​ avec comme //qLength = 0//. Il revient au client de traiter ​ce cas et de le signaler ​à l'internaute.+Les erreurs sont envoyées si le le serveur est dans l'incapacité de faire le traitement, elle sont révélatrices de bogues côté client. Une erreur ne devrait jamais avoir lieu du fait de la saisie de l'​utilisateur ​final. Par exemple, si l'utilisateur fait une recherche ​sur les fiches avec une chaine ​composée ​uniquement ​de caractères ​spéciaux ​(« "'​(\ »), il ne s'​agit ​pas d'une erreur ​pour le serveur qui renverra ​simplement un objet //​ficheSearchResult//​ avec //qLength = 0// (ce qui signifie que la séquence ​de recherche est vide), ​à charge pour le client d'​alerter ​l'utilisateur final sur sa saisie incorrecte
  
-Autrement dittout requête est susceptible de renvoyer deux objets différents : l'​objet normalement attendu ​(//ficheSearchResult// dans le cas d'une recherche sur les fichesou //​commandMessage//​ en cas d'​erreur. ​Il revient au client de faire un test préalable pour savoir s'il est en présence ​d'une erreur ou non.+De la même manièreun paramètre optionnel incorrect ​(par exemple; ​//limit// qui n'a pas comme valeur un entierne donnera pas lieu à l'​envoi d'un message ​d'​erreur ​car le serveur prend alors la valeur par défaut du paramètreCe type d'erreur ​est géré par les [[serveurscrutari:​json:​warnings|messages ​d'avertissement]].
  
-Note en général, ​une erreur ​est envoyée que si elle a lieu sur un paramètre ​obligatoire. Si elle a lieu sur un paramètre optionnel (par exemple; //limit// qui n'a pas comme valeur un entier)elle est ignoré et c'​est ​la valeur ​par défaut du paramètre ​optionnel qui est traité par le serveur.+Une erreur est composé de trois éléments ​: une clé indiquant la nature de l'erreur, le paramètre ​concerné ​par l'erreur, la valeur ​de paramètre ​éventuellement à l'​origine de l'​erreur
  
 ===== Clés d'​erreur ===== ===== Clés d'​erreur =====
Ligne 13: Ligne 13:
 Les erreurs susceptibles d'​être rencontrées sont les suivantes : Les erreurs susceptibles d'​être rencontrées sont les suivantes :
  
-  * //missingTypeParameter// : le paramètre ​//type// n'​est ​pas défini, le serveur ne peut pas comprendre quelle requête est demandée +  * //missingParameter// : le paramètre ​indiqué est absent alors qu'il est obligatoire 
-  * //emptyTypeParameter// : le paramètre ​//type// existe ​mais est vide +  * //emptyParameter// : le paramètre ​indiqué est présent ​mais vide 
-  * //wrongTypeParameter// : la valeur ​du paramètre ​type est incorrectecette valeur est rappelée dans la propriété //text// du message d'​erreur +  * //unknownParameterValue// : la valeur ​pour le paramètre ​indiqué ​est inconnue, cela arrive pour les paramètres dont les valeurs possibles sont fixées (par exemple, les paramètres //type// et //mode//) ou s'​ils ​sont censés identifier une ressource particulière ​(par exemple, ​//q-id//) 
-  * //​missingQFicheParameters//​ : les paramètres ​obligatoires ​//q// et //q-id// (mutellement exclusifs) sont absents dans la recherche de fiches ​([[serveurscrutari:​json:​type_qfiche|type=q-fiche]]) +
-  * //​emptyQIdParameter//​ : paramètre ​//​q-id// ​présent mais vide ([[serveurscrutari:​json:​type_qfiche|type=q-fiche]]+
-  * //​wrongQIdParameter//​ : l'​identifiant donné par le paramètre //q-id// est incorrect car ne correspond pas à une requête enregistrée , cette valeur est rappelée dans la propriété //text// du message d'​erreur([[serveurscrutari:​json:​type_qfiche|type=q-fiche]])+
  
  
Ligne 25: Ligne 23:
 <code javascript>​ <code javascript>​
 { {
-  ​commandMessage: { +  ​error: { 
-    type: '​error',​ //à l'​heure actuelle, la valeur est toujours '​error'​ +    key: … , // clé de l'​erreur (chaine) 
-    key: … , // clé identifiant ​l'​erreur (chaine) +    ​parameter: … , // paramètre source de l'​erreur ​(chaine) 
-    ​text: … , // texte optionnel décrivant ​l'​erreur +    ​value: … , // valeur de paramètre à l'​origine de l'​erreur (optionnel, ​chaine)
-    ​array: [ // en cas d'​erreur multiple, tableau avec la liste des erreurs rencontrées,​ optionnel +
-      { // chaque erreur est objet +
-        key: … , // clé identifiant ​l'​erreur (chaine) +
-        text: … , // texte optionnel décrivant l'​erreur +
-      }, +
-      ... +
-    ]+
   }   }
 +}
 </​code>​ </​code>​
  
serveurscrutari/json/messages.txt · Dernière modification: 2013/04/17 15:06 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0