Saltar al contenido principal
Cada objeto dentro de X —un Tweet, Mensaje Directo, Usuario, Lista, etc.— tiene un ID único. Al comienzo de la plataforma, estos IDs eran números lo suficientemente pequeños como para generarse de forma secuencial. Con el tiempo, para acomodar el crecimiento, los IDs pasaron de 32 bits a 64 bits. Hoy en día, los IDs de X son enteros únicos sin signo de 64 bits, basados en el tiempo en lugar de ser secuenciales. El ID completo se compone de una marca de tiempo, un número de trabajador y un número de secuencia. X desarrolló un servicio interno conocido como “Snowflake” para generar estos IDs de manera consistente (lee más sobre esto en el blog de X). Los números tan grandes como de 64 bits pueden causar problemas con lenguajes de programación que representan enteros con menos de 64 bits. Un ejemplo de esto es JavaScript, donde los enteros están limitados a 53 bits. Para proporcionar una solución alternativa, en los diseños originales de la X API (v1/1.1), los valores de ID se devolvían en dos formatos: como enteros y como cadenas.
{"id": 10765432100123456789, "id_str": "10765432100123456789"}
Si ejecutas el comando (10765432100123456789).toString() en la consola de JavaScript del navegador, el resultado será "10765432100123458000": el entero de 64 bits pierde precisión debido a la conversión (esto a veces se denomina “munging”: un cambio destructivo en un dato). En las X API hasta la versión 1.1, siempre debes usar la representación en cadena del número para evitar perder precisión. En versiones más recientes de la API, todos los valores enteros grandes se representan como cadenas de forma predeterminada.