Codes d'erreur de l'API Métadonnées
Comme indiqué dans la section Gestion des erreurs, l'API des métadonnées VPC utilise les codes de réponse standard HTTP pour indiquer le résultat d'une demande. Par exemple, une réponse
4xx
-series indique un échec que le client doit résoudre. Une réponse 5xx
indique un incident de service.
En outre, toutes les réponses 4xx
et 5xx
incluent un objet de réponse d'erreur JSON qui fournit des informations supplémentaires sur le problème. Ces informations comprennent une propriété trace
dont la valeur
peut être demandée par l'assistance IBM lors du dépannage de la panne, et une propriété errors
array qui contient une ou plusieurs erreurs spécifiques liées au problème. Chaque élément du tableau errors
utilise le schéma
JSON suivant :
code
- Chaîne de code d'erreur, telle queinvalid_value
message
-Chaîne de texte qui décrit le message d'erreur, par exemple, "La valeur fournie pour la zoneexpires_in
doit être comprise entre5
et3600
."more_info
- Si présent, lien vers la documentation relative à cette erreurtarget
- Pour les erreurs qui renvoient une propriététarget
dans la réponse, examinez les sous-propriétés pour trouver des indices :name
de la zone, du paramètre de requête ou de l'en-tête problématiquetype
de l'entrée où le problème a été détecté, par exemple une zonevalue
(si présent) la valeur problématique dans la zone, le paramètre de requête ou l'en-tête
Exemple d'objet de réponse d'erreur 400
JSON :
{
"errors": [
{
"code": "invalid_value",
"message": "The `expires_in` field must not exceed `3600`.",
"more_info": "https://cloud.ibm.com/docs/vpc?topic=vpc-imd-configure-service",
"target": {
"name": "expires_in",
"type": "field",
"value": "7200"
}
}
],
"status_code": 400,
"trace": "e37872f6-f9a4-4084-a1a8-e56a1c8c8d3d"
}
Les codes d'erreur peuvent être ajoutés, supprimés ou modifiés dans les versions ultérieures, les mises à jour étant annoncées dans le journal des modifications de l'API des métadonnées VPC. Si vous utilisez des codes d'erreur à l'aide d'un programme, nous vous recommandons de les coder de manière défensive. Tout code qui recherche des codes d'erreur spécifiques doit toujours avoir une clause "default" ou "catch-all". Il peut donc gérer le cas où le code d'erreur renvoyé ne correspond à aucun des codes attendus.
invalid_request
Utilisé lorsque la demande ne peut pas être analysée, par exemple, lorsque la demande JSON est mal formée ou que le corps de la demande est trop volumineux.
Le code d'erreur invalid_request
peut accompagner un code de statut HTTP 400
.
Exemple de message : le corps de la demande était mal formé.
invalid_value
Utilisé pour les valeurs non valides pour les en-têtes, les paramètres de requête, les paramètres de chemin ou les propriétés (identifiés par target
). Inclut des valeurs entières qui sont hors plage, des valeurs de chaîne qui comportent
des caractères non valides, des énumérations hors de l'ensemble indiqué, etc.
Le code d'erreur invalid_value
peut accompagner les codes de statut HTTP suivants :
404
pour les paramètres de chemin400
pour tous les autres cas
Exemple de message : la valeur fournie pour la zone expires_in
doit être comprise entre 5
et 3600
.
missing_field
Utilisé dans le cas où un en-tête, un paramètre de requête ou une propriété requis ne sont pas fournis.
Le code d'erreur missing_field
peut accompagner un code de statut HTTP 400
.
Exemple de message : un ID de profil sécurisé n'a pas été transmis dans le corps de la demande.
missing_value
Utilisé pour les en-têtes obligatoires, les paramètres de requête ou les propriétés de corps manquants (identifiés par target
).
Le code d'erreur missing_value
peut accompagner un code de statut HTTP 400
.
Exemple de message : une valeur telle que ibm
doit être fournie dans l'en-tête Metadata-Flavor
.
not_found
Utilisé pour les en-têtes, les paramètres de requête, les paramètres de chemin ou les propriétés du corps (identifiés par target
) qui sont syntaxiquement valides, mais qui font référence à une ressource qui n'existe pas.
Le code d'erreur not_found
peut accompagner les codes de statut HTTP suivants :
404
pour les paramètres de chemin400
pour tous les autres cas
Exemple de message : groupe de placement introuvable.
profile_not_linked
Utilisé lorsqu'un profil sécurisé n'est pas lié à une instance de serveur virtuel. Ce code d'erreur est renvoyé uniquement pour la méthode POST /instance_identity/v1/iam_token
.
Le code d'erreur profile_not_linked
peut accompagner un code de statut HTTP 400
.
Exemple de message : l'instance de serveur virtuel n'est pas liée au profil de confiance spécifié.
service_error
Utilisé lorsque le client rencontre un problème côté service.
Le code d'erreur service_error
peut accompagner un code de statut HTTP 500
.
Exemple de message : une erreur interne s'est produite.
unauthenticated
Utilisé lorsqu'un jeton Bearer est fourni dans l'en-tête Authorization
et que le jeton est arrivé à expiration, syntaxiquement incorrect ou syntaxiquement correct, mais pas valide.
Le code d'erreur unauthenticated
peut accompagner un code de statut HTTP 401
.
Exemple de message : le jeton fourni n'est pas valide ou est arrivé à expiration.
unknown_field
Utilisé lorsqu'un paramètre ou une propriété de requête inconnu est fourni.
Le code d'erreur unknown_field
peut accompagner un code de statut HTTP 400
.
Exemple de message: la propriété inconnue xyzzy
a été spécifiée dans le corps de la demande.