Zum Hauptinhalt springen
Jedes Objekt in X – ein Tweet, eine Direktnachricht, ein Nutzer, eine List usw. – hat eine eindeutige ID. Zu Beginn der Plattform waren diese IDs so klein, dass sie der Reihe nach erzeugt werden konnten. Im Laufe der Zeit wurden sie, dem Wachstum geschuldet, von 32‑Bit auf 64‑Bit umgestellt. Heute sind X-IDs eindeutige 64‑Bit‑Integer ohne Vorzeichen, die zeitbasiert statt sequenziell sind. Die vollständige ID besteht aus einem Zeitstempel, einer Worker-Nummer und einer Sequenznummer. X entwickelte einen internen Dienst namens „Snowflake“, um diese IDs konsistent zu erzeugen (mehr dazu im X‑Blog). Zahlen mit 64‑Bit können in Programmiersprachen Probleme verursachen, die Integer mit weniger als 64‑Bit darstellen. Ein Beispiel ist JavaScript, bei dem Integer auf 53‑Bit begrenzt sind. Um hierfür einen Workaround bereitzustellen, gaben die ursprünglichen Entwürfe der X API (v1/1.1) ID-Werte in zwei Formaten zurück: sowohl als Integer als auch als Strings.
{"id": 10765432100123456789, "id_str": "10765432100123456789"}
Wenn Sie den Befehl (10765432100123456789).toString() in einer JavaScript-Konsole im Browser ausführen, lautet das Ergebnis „10765432100123458000“ – der 64‑Bit‑Ganzzahlwert verliert durch die Umwandlung an Genauigkeit (dies wird manchmal als „munging“ bezeichnet – eine destruktive Veränderung von Daten). In X APIs bis Version 1.1 sollten Sie stets die String-Darstellung der Zahl verwenden, um Genauigkeitsverluste zu vermeiden. In neueren Versionen der API werden alle großen Ganzzahlwerte standardmäßig als Strings dargestellt.
I