ForHosting KIT · Outils pour développeurs

Vérifier le format d'une clé d'idempotence

La vérification de format de clé d'idempotence prend la chaîne que vous comptez envoyer comme en-tête Idempotency-Key et vous indique si elle suit les règles de format courantes avant même d'atteindre votre API.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Elle vérifie que la clé n'est pas vide, qu'elle est assez longue pour être unique en pratique, qu'elle reste sous une longueur maximale raisonnable et que chaque caractère est sûr dans une URL, afin que la clé traverse en-têtes, journaux et chaînes de requête sans surprise d'encodage. Vous envoyez une chaîne et recevez un indicateur valid clair, la longueur mesurée et une liste de problèmes concrets lorsque quelque chose ne va pas.

Pourquoi les clés d'idempotence ont besoin d'une vérification de format

Les clés d'idempotence existent pour qu'une requête renvoyée — un paiement soumis deux fois, une commande créée après un délai d'attente — ne soit traitée qu'une seule fois. Mais la sécurité qu'elles promettent dépend du bon format de la clé elle-même. Une clé trop courte entre en collision avec celle d'un autre client et déduplique silencieusement deux opérations différentes en une seule. Une clé contenant des caractères hors de l'alphabet sûr pour URL est déformée quelque part entre votre client, un proxy, la chaîne de journaux et le serveur, si bien que la nouvelle tentative arrive avec une chaîne différente de l'originale et est facturée deux fois. Une clé vide est rejetée d'emblée par la plupart des API, souvent avec une erreur générique qui prend un après-midi à diagnostiquer. Faire passer la clé par cette vérification de format de clé d'idempotence à la périphérie de votre système détecte les trois modes d'échec au moment du développement, dans une suite de tests ou dans une validation préalable au sein de votre propre service, plutôt que dans un rapport de rapprochement des semaines plus tard.

Ce qui est validé exactement

La vérification applique les règles de format que les prestataires de paiement et les middlewares de déduplication documentent le plus souvent. D'abord, la clé doit être une chaîne non vide ; une clé vide est une erreur, pas un avertissement, car aucun serveur ne l'acceptera. Ensuite, la longueur : par défaut, la clé doit compter au moins 16 caractères, le seuil en dessous duquel l'unicité cesse d'être plausible, et au plus 255 caractères, le plafond que la plupart des stockages acceptent — ces deux bornes sont configurables à chaque appel. Enfin, l'alphabet : chaque caractère doit appartenir à l'ensemble non réservé de la RFC 3986 — lettres, chiffres, tiret, point, tiret bas et tilde. Ces caractères traversent les en-têtes HTTP, les segments d'URL et les transporteurs de journaux sans encodage, ce qui est exactement le parcours des clés d'idempotence. Quand un caractère échoue, la réponse énumère chaque caractère fautif distinct pour que vous voyiez si quelqu'un a inséré une espace, une barre oblique ou un emoji, et le tableau issues nomme le problème de façon lisible par une machine : too_short, too_long ou unsafe_characters.

Où la vérification s'intègre dans votre stack

La plupart des équipes l'intègrent à deux endroits. Le premier est le client qui génère les clés : juste après avoir construit une clé à partir d'un UUID, d'un horodatage et d'un identifiant utilisateur, validez-la une fois et consignez un avertissement si elle échoue, afin qu'un bogue du générateur apparaisse en préproduction plutôt qu'en production. Le second est le test de contrat : envoyez un lot de clés issues de chaque intégration que vous maintenez à l'endpoint en CI, de sorte qu'une mise à jour de bibliothèque modifiant le comportement d'encodage fasse échouer le build. L'endpoint est déterministe et sans état — rien n'est stocké, aucune liste de clés déjà vues n'est consultée et la même entrée produit toujours la même sortie —, ce qui signifie qu'on peut l'appeler sans risque avec de vraies clés et qu'il est assez bon marché, à $0.002 par requête, pour s'exécuter à chaque déploiement. La même validation s'exécute aussi gratuitement dans votre navigateur sur cette page, si bien qu'un développeur peut coller une clé suspecte pendant un incident et obtenir la même réponse que celle de l'API.

Valider les clés dans un client de nouvelle tentative de paiement

Vérifiez la clé générée avant d'attacher l'en-tête Idempotency-Key, afin qu'un générateur malformé échoue vite au lieu de facturer deux fois un client.

Tester les intégrations par contrat en CI

Envoyez les clés générées par chacun de vos services à la vérification à chaque build et faites échouer le pipeline quand un changement de bibliothèque casse le format.

Déboguer un incident de déduplication

Collez une clé issue des journaux dans la vérification gratuite du navigateur pour voir si l'encodage ou la longueur explique pourquoi deux tentatives ont été traitées comme des requêtes différentes.

Combien ça coûte ?

$0.002 par requête. La même vérification s'exécute gratuitement dans votre navigateur sur cette page.

La clé est-elle stockée ou comparée à des clés déjà vues ?

Non. La vérification porte uniquement sur le format : longueur et caractères. Rien n'est stocké et aucun état de déduplication n'est consulté.

Pourquoi une clé vide est-elle une erreur et non un simple échec ?

Parce qu'une clé vide n'est jamais un choix de format : c'est un bogue de l'appelant. L'API la rejette comme entrée invalide pour que le problème apparaisse immédiatement.

Quels caractères sont considérés comme sûrs pour une URL ?

L'ensemble non réservé de la RFC 3986 : lettres majuscules et minuscules, chiffres, tiret, point, tiret bas et tilde. Tout autre caractère est signalé dans invalid_chars.

Puis-je modifier les limites de longueur ?

Oui. Passez min_length et max_length pour remplacer les valeurs par défaut de 16 et 255, par exemple pour respecter un fournisseur qui documente un plafond de 64 caractères.

Un résultat valide garantit-il que la clé est unique ?

Non. La vérification ne contrôle que le format. L'unicité dépend de la façon dont vous générez la clé — un UUID ou une source d'entropie équivalente est la réponse habituelle.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/idempotency-key-format-check

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/idempotency-key-format-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"key":"order-7f3a9c2e-2026-07-25"}'
{
  "key": "order-7f3a9c2e-2026-07-25"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.idempotency_key_format_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →