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. |
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.