Respuestas de error de Microsoft Graph y tipos de recursos
Los errores de Microsoft Graph se devuelven mediante códigos de estado HTTP estándar y un objeto de respuesta de error JSON.
Códigos de estado HTTP
La siguiente tabla enumera y describe los códigos de estado HTTP que se pueden devolver.
Código de estado | Mensaje de estado | Descripción |
---|---|---|
400 | Solicitud incorrecta (Bad Request) | No se puede procesar la solicitud porque tiene un formato incorrecto o incorrecto. |
401 | No autorizado (Unauthorized) | La información de autenticación requerida no se encuentra o no es válida para el recurso. |
402 | Pago requerido | No se han cumplido los requisitos de pago de la API. |
403 | Prohibido | Se denegó el acceso al recurso solicitado. Es posible que el usuario no tenga suficiente permiso o que no tenga una licencia necesaria. Importante: Si se aplican directivas de acceso condicional a un recurso, se puede devolver un HTTP 403; Forbidden error=insufficient_claims mensaje. Para obtener más información sobre Microsoft Graph y el acceso condicional, consulte Guía para desarrolladores para Microsoft Entra acceso condicional. |
404 | No encontrado (Not Found) | El recurso solicitado no existe. |
405 | Método no permitido (Method Not Allowed) | El método HTTP de la solicitud no se permite en el recurso. |
406 | No es aceptable (Not Acceptable) | Este servicio no es compatible con el formato solicitado en el encabezado Accept. |
409 | Conflict | El estado actual entra en conflicto con lo que la solicitud espera. Por ejemplo, la carpeta principal especificada podría no existir. |
410 | Pasado (Gone) | El recurso solicitado ya no está disponible en el servidor. |
411 | Longitud requerida (Length Required) | Se requiere un encabezado Content-Length en la solicitud. |
412 | Error de condición previa (Precondition Failed) | Una condición previa proporcionada en la solicitud (como un encabezado if-match) no coincide con el estado actual del recurso. |
413 | Entidad de solicitud demasiado grande (Request Entity Too Large) | El tamaño de la solicitud supera el límite máximo. |
415 | Tipo de medio no compatible (Unsupported Media Type) | El tipo de contenido de la solicitud es un formato que no es compatible con el servicio. |
416 | El rango solicitado no se cumple (Requested Range Not Satisfiable) | El rango de bytes especificado no es válido o no está disponible. |
422 | Entidad no procesable (Unprocessable Entity) | No se puede procesar la solicitud porque es semánticamente incorrecta. |
423 | Bloqueado | El recurso al que está accediendo está bloqueado. |
429 | Demasiadas solicitudes (Too Many Requests) | La aplicación cliente se ha limitado y no debe intentar repetir la solicitud hasta que haya transcurrido un período de tiempo. |
500 | Error interno del servidor (Internal Server Error) | Se produjo un error interno del servidor al procesar la solicitud. |
501 | No implementado (Not Implemented) | La característica solicitada no se implementó. |
503 | Servicio no disponible | El servicio no está disponible temporalmente por mantenimiento o está sobrecargado. Puede repetir la solicitud después de un retraso, la longitud de los cuales puede especificarse en un encabezado Retry-After. |
504 | Tiempo de espera de puerta de enlace (Gateway Timeout) | El servidor, mientras actúa como proxy, no recibió una respuesta oportuna del servidor ascendente al que necesitaba acceder al intentar completar la solicitud. |
507 | Almacenamiento insuficiente (Insufficient Storage) | Se ha alcanzado la cuota de almacenamiento máxima. |
509 | Ha superado el límite de ancho de banda | Su aplicación se ha limitado por superar el extremo máximo de ancho de banda. Su aplicación puede reintentar la solicitud de nuevo cuando haya transcurrido más tiempo. |
La respuesta de error es un solo objeto JSON que contiene una propiedad única denominada error. Este objeto incluye todos los detalles del error. Puede usar la información devuelta aquí en lugar o además del código de estado HTTP. A continuación se muestra un ejemplo de un cuerpo completo de error JSON.
{
"error": {
"code": "badRequest",
"message": "Uploaded fragment overlaps with existing data.",
"innerError": {
"code": "invalidRange",
"request-id": "request-id",
"date": "date-time"
}
}
}
Tipo de recurso de error
El recurso de error se devuelve cuando se produce un error en el procesamiento de una solicitud.
Las respuestas de error siguen la definición de las directrices de la API REST de Microsoft.
Representación JSON
El recurso de error se compone de un único recurso:
{
"error": {
"code": "string",
"message": "string",
"innererror": {
"code": "string"
},
"details": []
}
}
Nombre de la propiedad | Valor | Descripción |
---|---|---|
code | cadenas | Una cadena de código de error para el error que se ha producido |
message | string | Mensaje listo para desarrolladores sobre el error que se produjo. Esto no debe mostrarse directamente al usuario. |
innererror | objeto error | Opcional. Un objeto de error adicional que podría ser más específico que el error de nivel superior. |
details | error object | Opcional. Lista de objetos de error adicionales que podrían proporcionar un desglose de varios errores encontrados al procesar la solicitud. |
Propiedades
La propiedad de código contiene un valor legible por la máquina en el que puede tomar una dependencia en el código.
El objeto innererror podría contener de forma recursiva más objetos innererror con propiedades de códigos de error adicionales más específicas. Al controlar un error, las aplicaciones deben recorrer en bucle todos los códigos de error anidados que están disponibles y usar el más detallado que comprendan.
La propiedad message es un valor legible que describe la condición de error. No dependa del contenido de este valor en el código.
La propiedad message de la raíz contiene un mensaje de error diseñado para que el desarrollador lea. Los mensajes de error no se localizan y no deben mostrarse directamente al usuario. Al controlar los errores, el código no debe depender de los valores de propiedad del mensaje porque pueden cambiar en cualquier momento y suelen contener información dinámica específica de la solicitud con errores. Solo debe codificar en los códigos de error devueltos en las propiedades de código .
La propiedad details es una matriz opcional de objetos de error que tienen el mismo formato JSON que el objeto de error de nivel superior. En el caso de una solicitud que se compone de varias operaciones, como una operación masiva o por lotes, podría ser necesario devolver un error independiente para cada operación. En este caso, la lista de detalles se rellena con estos errores individuales.