Vai al contenuto principale
Ogni oggetto su X — un Tweet, un Messaggio Diretto, un Utente, una List e così via — ha un ID univoco. Agli albori della piattaforma, questi ID erano numeri abbastanza piccoli da poter essere generati in sequenza. Nel tempo, per supportare la crescita, gli ID sono passati da 32 bit a 64 bit. Oggi gli ID di X sono interi non firmati a 64 bit univoci, basati sul tempo invece che sequenziali. L’ID completo è composto da un timestamp, un numero di worker e un numero di sequenza. X ha sviluppato un servizio interno chiamato “Snowflake” per generare questi ID in modo coerente (ulteriori informazioni sul blog di X). Numeri grandi come quelli a 64 bit possono causare problemi con i linguaggi di programmazione che rappresentano gli interi con meno di 64 bit. Un esempio è JavaScript, in cui gli interi sono limitati a 53 bit. Per ovviare a questo, nei design originali della X API (v1/1.1) i valori degli ID venivano restituiti in due formati: sia come interi sia come stringhe.
{"id": 10765432100123456789, "id_str": "10765432100123456789"}
Se esegui il comando (10765432100123456789).toString() nella console JavaScript del browser, il risultato sarà "10765432100123458000": l’intero a 64 bit perde precisione a causa della conversione (questo a volte è chiamato “munging”, ovvero una modifica distruttiva a un dato). Nelle X API fino alla versione 1.1, dovresti sempre usare la rappresentazione testuale del numero per evitare perdite di precisione. Nelle versioni più recenti dell’API, tutti i valori interi di grandi dimensioni sono rappresentati come stringhe per impostazione predefinita.
I