Erreurs et limites de débit

L'API de la plateforme signale les échecs à l'aide de l'enveloppe d'erreur tRPC standard. Cette page couvre sa forme, la correspondance code-vers-HTTP, les erreurs de validation et les limites de débit de la plateforme (qui sont limitées à des fonctionnalités, pas globales).

L'enveloppe d'erreur

Les erreurs sont renvoyées dans la forme d'erreur tRPC standard et — comme les réponses réussies — sont encapsulées en superjson. Les champs utiles se trouvent sous error.data :

  • code — un code d'erreur lisible par une machine (par ex. UNAUTHORIZED, NOT_FOUND).
  • httpStatus — le statut HTTP correspondant.
  • path — le <router>.<procedure> qui a échoué.
{
  "error": {
    "message": "You must be signed in to do that",
    "code": -32001,
    "data": {
      "code": "UNAUTHORIZED",
      "httpStatus": 401,
      "path": "orders.list"
    }
  }
}

Code → statut HTTP

code httpStatus
BAD_REQUEST 400
UNAUTHORIZED 401
FORBIDDEN 403
NOT_FOUND 404
INTERNAL_SERVER_ERROR 500

UNAUTHORIZED signifie généralement qu'aucun identifiant valide n'a été résolu ; FORBIDDEN signifie que vous êtes authentifié mais que vous n'avez pas la permission ou la portée locataire/site — voir Sessions et tokens.

Erreurs de validation (zodError)

Lorsqu'une entrée échoue à la validation Zod, l'enveloppe ajoute un champ data.zodError : une carte aplatie de nom de champ → tableau de messages. Le code de premier niveau est BAD_REQUEST (HTTP 400).

{
  "error": {
    "data": {
      "code": "BAD_REQUEST",
      "httpStatus": 400,
      "path": "clients.create",
      "zodError": {
        "fieldErrors": {
          "email": ["Invalid email"]
        },
        "formErrors": []
      }
    }
  }
}

Lisez zodError pour remonter les messages par champ à l'appelant.

Limites de débit

Il n'y a aucun limiteur de débit tRPC global. Les limites sont limitées à des fonctionnalités et ne s'appliquent qu'à des sous-systèmes spécifiques :

Portée Limite
FeedApiKey rateLimit par clé — requêtes par heure, configuré sur la clé.
Endpoint de token OIDC 20 requêtes / minute.
Autorisation d'appareil 5 requêtes / minute.
Note

Ne présumez pas d'un quota de requêtes à l'échelle de la plateforme. En dehors des fonctionnalités ci-dessus, l'API n'impose pas de limite de débit générale. La limite horaire de FeedApiKey est configurée par clé — voir Modèle de données → Clés API de feed.