====== Messages d'erreur ====== 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. Une erreur est envoyée si le le serveur est dans l'incapacité de faire le traitement avec les paramètres transmis. Elle est généralement révélatrice d'un bogue côté client mais une erreur peut aussi être due à une mauvaise saisie de l'utilisateur dans le cas de la recherche avancée lorsque l'utilisateur n'a pas respecté la syntaxe, à charge pour le client d'alerter l'utilisateur final sur sa saisie incorrecte. Un paramètre optionnel incorrect (par exemple; //limit// qui n'a pas comme valeur un entier) ne donnera pas lieu à l'envoi d'un message d'erreur car le serveur prend alors la valeur par défaut du paramètre. Ce type d'erreur est signalé au client par les [[serveurscrutari:json:warnings|messages d'avertissement]]. 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. Elle peut également comporte un détail précisant l'erreur sous la forme d'un tableau d'erreurs complémentaires. Une erreur peut être complétée par des avertissements s'ils ont eu lieu avant que l'erreur se produise comme indiqué à la page [[serveurscrutari:json:warnings|Messages d'avertissement]]. ===== Clés d'erreur ===== Les erreurs susceptibles d'être rencontrées sont les suivantes : * //missingParameter// : le paramètre indiqué est absent alors qu'il est obligatoire * //emptyParameter// : le paramètre indiqué est présent mais vide * //malformedParameterValue// : la forme du paramètre est incorrecte (par exemple, un mauvais code de langue) * //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//) * //badOperationSyntax// : la syntaxe de l'opération de recherche est incorrecte (cas des recherches avancées) ===== Objet retourné ===== { error: { key: … , // clé de l'erreur (chaine) parameter: … , // paramètre source de l'erreur (chaine) value: … , // valeur de paramètre à l'origine de l'erreur (optionnel, chaine) array: [//tableau des erreurs détaillant l'erreur principale { // chaque erreur est un objet key: … , // clé de l'erreur (chaine) value: … // valeur à l'origine de l'erreur (optionnel, chaine) } ] } }