Sqids é uma biblioteca de código aberto que permite gerar identificadores únicos curtos a partir de números. Esses IDs são seguros para URLs, podem codificar vários números e não contêm palavras de baixo calão comuns. Leia mais .
Assim é como eles se parecem:
Exemplo rápido de codificação e decodificação:
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]
Se os IDs forem muito curtos, você pode preenchê-los até um certo comprimento:
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]
Crie IDs únicos embaralhando o alfabeto:
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]
A documentação completa está em https://github.com/sqids/sqids-openedge-abl
O principal uso de Sqids é puramente visual. Se você deseja usar IDs em vez de números em seu projeto, Sqids pode ser uma boa escolha.