Códigos de error de API de metadatos de instancia
Como se explica en el apartado de Gestión de errores, la API de metadatos de instancias de VPC utiliza códigos de respuesta estándar de HTTP para indicar el resultado de una solicitud.
Por ejemplo, una respuesta de la serie " 4xx
" indica un fallo que el cliente debe resolver. Una respuesta de series de 5xx
indica un error de servicio.
Además, todas las respuestas 4xx
y 5xx
incluyen un objeto de respuesta de error JSON que proporciona información adicional sobre el problema. Esta información incluye una propiedad " trace
" cuyo
valor podría ser solicitado por el servicio de asistencia de IBM cuando resuelvan el fallo, y una propiedad de matriz " errors
" que contiene uno o más errores específicos relacionados con el problema. Cada elemento de
la matriz errors
utiliza el siguiente esquema JSON:
code
: Cadena de código de error, comoinvalid_value
message
-Serie de texto que describe el mensaje de error, por ejemplo, "El valor proporcionado para el campoexpires_in
debe estar entre5
y3600
."more_info
: Si está presente, es un enlace a la documentación sobre este errortarget
- Para los errores que devuelven una propiedad "target
" en la respuesta, revise las subpropiedades en busca de pistas:name
del campo, parámetro de consulta o cabecera problemáticostype
de entrada donde se ha encontrado el problema como, por ejemplo, un campovalue
: Si está presente, es el valor problemático dentro del campo, parámetro de consulta o cabecera
Ejemplo de objeto de respuesta JSON de 400
:
{
"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"
}
Los códigos de error se pueden añadir, eliminar o modificar en versiones posteriores, con actualizaciones anunciadas en el registro de cambios de la API de metadatos de instancias de VPC. Si utiliza códigos de error mediante programación, le recomendamos que codifique de forma defensiva. Cualquier código que compruebe códigos de error específicos siempre debe tener una cláusula "default" o "catch-all". Por lo tanto, puede manejar el caso en el que el código de error devuelto no coincide con ninguno de los que el código esperaba.
invalid_request
Se utiliza cuando no se puede analizar la petición, por ejemplo, cuando la petición JSON está mal formada o su cuerpo es demasiado grande.
Un código de error de invalid_request
puede acompañar a un código de estado HTTP de 400
.
Mensaje de ejemplo: El cuerpo de la petición está mal formado.
invalid_value
Se utiliza en valores no válidos de cabeceras, parámetros de consulta, parámetros de ruta o propiedades (identificados por target
). Incluye valores enteros que están fuera de rango, valores de cadena que tienen caracteres no válidos,
valores de enumeración que se salen del conjunto listado, etc.
El código de error de invalid_value
puede acompañar los siguientes códigos de estado HTTP:
404
en parámetros de ruta400
en todos los demás casos
Mensaje de ejemplo: El valor proporcionado en el campo expires_in
tiene que estar comprendido entre 5
y 3600
.
missing_field
Se utiliza en cualquier situación en la que no se proporcione una cabecera, un parámetro de consulta o una propiedad obligatorios.
Un código de error de missing_field
puede acompañar a un código de estado HTTP de 400
.
Mensaje de ejemplo: No se ha pasado un ID de perfil de confianza en el cuerpo de la petición.
missing_value
Se utiliza en las cabeceras necesarias, los parámetros de consulta o las propiedades del cuerpo que faltan (identificados por target
).
Un código de error de missing_value
puede acompañar a un código de estado HTTP de 400
.
Mensaje de ejemplo: Hay que proporcionar un valor como, por ejemplo, ibm
en la cabecera Metadata-Flavor
.
not_found
Se utiliza en cabeceras, parámetros de consulta, parámetros de ruta o propiedades de cuerpo (identificados por target
) que son válidos sintácticamente, pero que hacen referencia a un recurso inexistente.
El código de error de not_found
puede acompañar los siguientes códigos de estado HTTP:
404
en parámetros de ruta400
en todos los demás casos
Mensaje de ejemplo: Grupo de colocación no encontrado.
profile_not_linked
Se utiliza cuando un perfil de confianza no está vinculado a una instancia de servidor virtual. Este código de error solo se devuelve en el método POST /instance_identity/v1/iam_token
.
Un código de error de profile_not_linked
puede acompañar a un código de estado HTTP de 400
.
Mensaje de ejemplo: La instancia de servidor virtual no está vinculada al perfil de confianza especificado.
service_error
Se utiliza cuando el cliente encuentra un problema del lado del servicio.
Un código de error de service_error
puede acompañar a un código de estado HTTP de 500
.
Mensaje de ejemplo: Se ha producido un error interno.
unauthenticated
Se utiliza cuando se proporciona un token portador en la cabecera Authorization
, pero está caducado, mal formado o bien es sintácticamente correcto, pero no es válido.
Un código de error de unauthenticated
puede acompañar a un código de estado HTTP de 401
.
Mensaje de ejemplo: El token proporcionado no es válido o ha caducado.
unknown_field
Se utiliza cuando se proporciona una propiedad o un parámetro de consulta desconocido.
Un código de error de unknown_field
puede acompañar a un código de estado HTTP de 400
.
Mensaje de ejemplo: Se ha especificado la propiedad desconocida xyzzy
en el cuerpo de la solicitud.