Wat is Sqids?

Sqids is een open-source bibliotheek waarmee je korte unieke identifiers kunt genereren vanuit nummers. Deze ID's zijn URL-veilig, kunnen verschillende nummers encoderen en bevatten geen gangbare grove woorden. Lees meer .

Dit is hoe ze eruit zien:

https://example.com/Lqj8a0

Snel encode & decode voorbeeld:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids().

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // '86Rf07'.
numbers = sqids:Decode(id). // [1, 2, 3]

Als ID's te kort zijn, kun je ze opvullen tot een bepaalde lengte:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids('', 10).

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // '86Rf07xd4z'.
numbers = sqids:Decode(id). // [1, 2, 3]

Maak unieke ID's door het alfabet te schudden:

DEFINE VARIABLE sqids   AS Sqids     NO-UNDO.
DEFINE VARIABLE numbers AS INTEGER   EXTENT 3 NO-UNDO.
DEFINE VARIABLE id      AS CHARACTER NO-UNDO.

sqids = NEW Sqids('k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt').

ASSIGN
	numbers[1] = 1
	numbers[2] = 2
	numbers[3] = 3.

id = sqids:Encode(numbers). // 'XRKUdQ'.
numbers = sqids:Decode(id). // [1, 2, 3]

De volledige documentatie is te vinden op https://github.com/sqids/sqids-openedge-abl

Gebruiksscenario's

Het hoofdgebruik van Sqids is puur visueel. Als je IDs in plaats van nummers wilt gebruiken in je project, kan Sqids een goede keuze zijn.

Goed voor

  • Coderen van primaire sleutels Als je een relationele database gebruikt
  • Besparen van databasezoekopdrachten Door meerdere objecten te coderen
  • Tijdelijke inlogtokens Vrij van grof taalgebruik en URL-veilig

Niet geschikt voor

  • Gevoelige data Dit is geen encryptiebibliotheek
  • Gebruikers-IDs Kan het aantal gebruikers onthullen als iemand het coderingsalfabet ontdekt

Functies

  • ๐Ÿ†” Genereer korte ID's van niet-negatieve getallen
  • โœ… Eenvoudig coderen en decoderen
  • ๐Ÿซฃ Automatisch gegenereerde ID's bevatten geen veelvoorkomend grof taalgebruik
  • ๐ŸŽฒ Ondersteuning voor aangepaste ID's via een geschud alfabet
  • ๐Ÿฅณ 46 integraties (85% gebruikt een nieuw ontwerp)
  • ๐Ÿ“Œ Elke versie produceert dezelfde ID's
  • ๐Ÿป Kleine bibliotheek met een toegeeflijke licentie

Voorbeeld / Speeltuin