Erreurs
Gérez le contrat des réponses de problèmes et corrélez les requêtes.
Les erreurs suivent le contrat JSON de problèmes de la RFC 9457, avec le type de média application/problem+json.
{
"type": "https://www.ninjabuy.com/api/v1/problems/bad-body",
"title": "Invalid request",
"status": 400,
"detail": "The request did not match the expected shape.",
"request_id": "REQUEST_ID",
"errors": [{"pointer": "/links", "detail": "Validation detail"}]
}type est l'identifiant stable du problème ; title et detail le décrivent. status correspond au statut HTTP. Les entrées facultatives de errors contiennent un JSON Pointer et des détails de validation ; un pointeur vide désigne le corps entier. Indiquez request_id (également dans X-Request-Id) lorsque vous signalez un problème.
Tous les types ci-dessous commencent par https://www.ninjabuy.com/api/v1/problems/.
| Suffixe du type | HTTP | Signification / action |
|---|---|---|
bad-json | 400 | Le corps n'est pas du JSON valide. Corrigez sa syntaxe. |
bad-body | 400 | Le corps, les paramètres de requête ou le curseur échouent à la validation. Lisez errors. |
bad-idempotency-key | 400 | Utilisez de 1 à 255 caractères ASCII imprimables pour Idempotency-Key. |
unauthorized | 401 | Fournissez un jeton bearer valide ; WWW-Authenticate fournit les métadonnées de découverte. |
not-found | 404 | La ressource est indisponible, inconnue ou n'appartient pas à ce compte. |
method-not-allowed | 405 | Utilisez la méthode indiquée dans Allow. |
idempotency-key-in-progress | 409 | La première requête avec cette clé est en cours. Attendez le délai de Retry-After. |
upload-too-large | 413 | Les octets téléversés dépassent la taille déclarée ou la limite de 20 MiB. |
unsupported-media-type | 415 | Envoyez Content-Type: application/json. |
idempotency-key-reused | 422 | Cette clé a été utilisée avec une autre requête. Utilisez une nouvelle clé. |
invalid-workbook | 422 | Le fichier téléversé n’est pas un XLSX/CSV lisible dans les limites. Lisez errors. |
upload-expired | 422 | La réservation de téléversement a expiré. Téléversez le fichier à nouveau. |
rate-limited | 429 | Attendez le nombre de secondes de Retry-After avant de réessayer. |
search-rate-limited | 429 | La fenêtre de recherche par mots-clés est pleine. Attendez le délai de Retry-After. |
service-unavailable | 503 | Réessayez sous peu ; respectez Retry-After s'il est présent. |
internal-error | 500 | Réessayez plus tard ; conservez l'identifiant de requête si le problème persiste. |
Une requête réussie peut encore contenir des échecs propres à certaines entrées. Gérez les statuts des liens séparément des erreurs HTTP. Utilisez Idempotency-Key pour reproduire une requête de création ; sans clé, répéter la soumission d’un lot crée une autre tâche.