Pular para o conteúdo principal
Cada objeto no X — um Tweet, Mensagem Direta, Usuário, List e assim por diante — tem um ID exclusivo. No início da plataforma, esses IDs eram números pequenos o suficiente para serem gerados sequencialmente. Com o tempo, para acomodar o crescimento, os IDs passaram de 32 bits para 64 bits. Hoje, os IDs do X são inteiros sem sinal de 64 bits exclusivos, baseados no tempo, em vez de sequenciais. O ID completo é composto por um carimbo de data/hora, um número de worker e um número de sequência. O X desenvolveu um serviço interno conhecido como “Snowflake” para gerar esses IDs de forma consistente (saiba mais sobre isso no blog do X). Números tão grandes quanto 64 bits podem causar problemas em linguagens de programação que representam inteiros com menos de 64 bits. Um exemplo é JavaScript, onde os inteiros são limitados a 53 bits. Para contornar isso, nos designs originais da X API (v1/1.1), os valores de ID eram retornados em dois formatos: como inteiros e como strings.
{"id": 10765432100123456789, "id_str": "10765432100123456789"}
Se você executar o comando (10765432100123456789).toString() no console JavaScript do navegador, o resultado será "10765432100123458000" — o inteiro de 64 bits perde precisão devido à conversão (isso às vezes é chamado de “munging” — uma alteração destrutiva em um dado). Nas X APIs até a versão 1.1, você deve sempre usar a representação em string do número para evitar perda de precisão. Nas versões mais recentes da X API, todos os valores inteiros grandes são representados como strings por padrão.
I