Types de ressources et réponses d’erreur Microsoft Graph

Les erreurs dans Microsoft Graph sont retournées à l’aide de codes de status HTTP standard et d’un objet de réponse d’erreur JSON.

Codes d’état HTTP

Le tableau suivant répertorie et décrit les codes d’état HTTP pouvant être renvoyés.

Code d'état Message d’état Description
400 Demande incorrecte (Bad Request) Impossible de traiter la demande, car elle est incorrecte ou incorrecte.
401 Non autorisé (Unauthorized) Informations d’authentification nécessaires manquantes ou non valides pour la ressource.
402 Paiement requis Les exigences de paiement pour l’API n’ont pas été remplies.
403 Interdit L’accès à la ressource demandée est refusé. L’utilisateur n’a peut-être pas suffisamment d’autorisations ou n’a peut-être pas une licence requise.

Important: Si des stratégies d’accès conditionnel sont appliquées à une ressource, un HTTP 403; Forbidden error=insufficient_claims message peut être retourné. Pour plus d’informations sur Microsoft Graph et l’accès conditionnel, consultez Guide du développeur pour Microsoft Entra l’accès conditionnel.
404 Introuvable (Not Found) La ressource demandée n’existe pas.
405 Méthode non autorisée (Method Not Allowed) La méthode HTTP dans la requête n’est pas autorisée sur la ressource.
406 Non acceptable (Not Acceptable) Ce service ne prend pas en charge le format demandé dans l’en-tête Accept.
409 Conflit L’état actuel n’est pas compatible avec les attentes de la demande. Par exemple, le dossier parent spécifié n’existe peut-être pas.
410 Non disponible (Gone) La ressource demandée n’est plus disponible sur le serveur.
411 Longueur requise (Length Required) Un en-tête Content-Length est requise sur la demande.
412 Échec de la condition préalable (Precondition Failed) Une condition préalable fournie dans la demande (par exemple, un en-tête if-match) ne correspond pas à l’état actuel de la ressource.
413 Entité de demande trop grande (Request Entity Too Large) La taille de la demande dépasse la limite maximale.
415 Type de support non pris en charge (Unsupported Media Type) Le type de contenu de la demande est un format qui n’est pas pris en charge par le service.
416 La gamme demandée ne peut pas être satisfaite (Requested Range Not Satisfiable) La gamme d’octets spécifiée n’est pas valide ou n’est pas disponible.
422 Impossible de traiter l’entité (Unprocessable Entity) Impossible de traiter la demande, car elle est sémantiquement incorrecte.
423 Verrouillé La ressource à laquelle vous accédez est verrouillée.
429 Trop de demandes (Too Many Requests) L’application cliente a été limitée et ne doit pas tenter de répéter la demande tant qu’un certain temps ne s’est pas écoulé.
500 Erreur interne du serveur (Internal Server Error) Une erreur du serveur interne s’est produite lors du traitement de la demande.
501 Non implémenté (Not Implemented) La fonctionnalité demandée n’est pas implémentée.
503 Service non disponible Le service est temporairement indisponible pour maintenance ou est surchargé. Vous pouvez répéter la demande après un délai, dont la longueur peut être spécifiée dans un en-tête Retry-After.
504 Dépassement du délai de la passerelle (Gateway Timeout) Bien qu’agissant en tant que proxy, le serveur n’a pas reçu de réponse en temps voulu de la part du serveur amont auquel il devait accéder pour tenter de terminer la demande.
507 Stockage insuffisant (Insufficient Storage) Le quota de stockage maximum a été atteint.
509 Limite de bande passante dépassée Votre application a été limitée car elle a dépassé la capacité maximale de la bande passante. Votre application peut renouveler la demande une fois qu’un délai plus long s’est écoulé.

La réponse d’erreur est un seul objet JSON qui contient une propriété unique nommée error. Cet objet inclut tous les détails de l’erreur. Vous pouvez utiliser les informations renvoyées ici à la place, ou en plus du code d’état HTTP. Voici un exemple de corps d’erreur JSON complet.

{
  "error": {
    "code": "badRequest",
    "message": "Uploaded fragment overlaps with existing data.",
    "innerError": {
      "code": "invalidRange",
      "request-id": "request-id",
      "date": "date-time"
    }
  }
}

Type de ressource d’erreur

La ressource d’erreur est renvoyée chaque fois qu’une erreur se produit dans le traitement d’une demande.

Les réponses d’erreur suivent la définition dans les Instructions de l’API REST Microsoft.

Représentation JSON

La ressource d’erreur est composée d’une seule ressource :

{
  "error": {
    "code": "string",
    "message": "string",
    "innererror": { 
      "code": "string"
    },
    "details": []
  }
}
Nom de la propriété Valeur Description
code string Chaîne de code pour l’erreur qui s’est produite
message string Message prêt pour le développeur concernant l’erreur qui s’est produite. Il ne doit pas être affiché directement à l’utilisateur.
innererror objet d’erreur Optional. Objet d’erreur supplémentaire qui peut être plus spécifique que l’erreur de niveau supérieur.
détails error object Optional. Liste d’objets d’erreur supplémentaires qui peuvent fournir une répartition des erreurs multiples rencontrées lors du traitement de la requête.

Propriétés

La propriété code contient une valeur lisible par l’ordinateur sur laquelle vous pouvez utiliser une dépendance dans votre code.

L’objet innererror peut contenir de manière récursive davantage d’objets innererror avec des propriétés de codes d’erreur supplémentaires et plus spécifiques. Lors de la gestion d’une erreur, les applications doivent parcourir en boucle tous les codes d’erreur imbriqués qui sont disponibles et utiliser le plus détaillé qu’elles comprennent.

La propriété message est une valeur lisible par l’homme qui décrit la condition d’erreur. Ne dépendez pas du contenu de cette valeur dans votre code.

La propriété message à la racine contient un message d’erreur destiné au développeur à lire. Les messages d’erreur ne sont pas localisés et ne doivent pas être affichés directement à l’utilisateur. Lors de la gestion des erreurs, votre code ne doit pas dépendre des valeurs de propriété de message , car elles peuvent changer à tout moment et contiennent souvent des informations dynamiques spécifiques à la demande ayant échoué. Vous devez coder uniquement par rapport aux codes d’erreur retournés dans les propriétés du code .

La propriété details est un tableau facultatif d’objets d’erreur qui ont le même format JSON que l’objet d’erreur de niveau supérieur. Dans le cas d’une requête composée de plusieurs opérations, telles qu’une opération en bloc ou par lots, il peut être nécessaire de retourner une erreur indépendante pour chaque opération. Dans ce cas, la liste des détails est remplie avec ces erreurs individuelles.