Formater du JSON
Mettre en forme, valider et replier du JSON.
Développement
Identifiants uniques, versions 4 et 7.
Pour un nouveau système, c’est le seul arbitrage à rendre, et la version 7 l’emporte souvent.
La version 4 est entièrement aléatoire. Deux identifiants créés successivement n’ont aucun lien, et c’est précisément ce qui les rend défavorables dans une base de données avec un index sur la clé : les nouvelles lignes atterrissent à des emplacements arbitraires, ce qui fragmente l’index.
La version 7 commence par un horodatage en millisecondes, suivi d’aléa. Les identifiants nouvellement créés se suivent donc, s’insèrent proprement en fin d’index, et la clé indique elle-même l’ordre de création.
La contrepartie de la version 7 est que le moment de création se déduit de l’identifiant. Pour la plupart des usages ce n’est pas gênant, parfois même commode ; si vous ne voulez délibérément pas le divulguer, prenez la version 4.
La question revient toujours : le même identifiant peut-il sortir deux fois ?
En théorie oui, en pratique non. Un UUID version 4 comporte 122 bits aléatoires. Le nombre de valeurs possibles est tel qu’il faudrait en produire des milliards par seconde pendant des années avant qu’une collision devienne plausible.
Les seuls vrais risques sont un générateur aléatoire de mauvaise qualité, ou un système qui tronque les identifiants à leurs premiers caractères. Le second est plus fréquent qu’on ne croit : un affichage abrégé ne pose pas de problème, mais stockez la valeur complète.
Ce générateur utilise le générateur aléatoire cryptographique du navigateur, et non le générateur ordinaire. C’est la différence entre réellement imprévisible et « qui a l’air aléatoire ».
Un UUID fait trente-six caractères avec les tirets. Stockez-le si possible dans un type dédié ou sur seize octets plutôt qu’en texte : cela économise de l’espace et accélère les comparaisons.
Majuscules ou minuscules ne changent pas la valeur ; la norme prescrit les minuscules à l’écriture. Comparez donc sans tenir compte de la casse, ou normalisez au stockage.
N’utilisez pas un UUID comme référence à dicter ou à recopier. Pour un numéro de commande ou de client, un format court et lisible vaut mieux ; l’UUID peut rester interne.
Les identifiants sont produits dans votre navigateur et ne sont conservés nulle part.
La 7 si les identifiants vont en base : ils se trient par date de création. La 4 pour ne pas divulguer ce moment.
En théorie oui, en pratique non. Le nombre de valeurs possibles est trop grand.
Pour l’affichage oui, pour le stockage non. Tronquer rend les collisions réelles.
La norme prescrit les minuscules. Comparez sans tenir compte de la casse.
Oui, via le générateur cryptographique du navigateur.
Non.