RESTful API-Design: Unix-Zeitstempel und ISO-8601

In welchem ​​Format sollte die REST-API Zeitstempel zurückgeben und akzeptieren? Die beiden beliebtesten Methoden sind Unix-Zeit (oder eine geringfügige Variante) oder ISO-8601. Beide haben ihre Stärken und Schwächen, und wie wir sehen werden, sind beide gleichermaßen beliebt. Eine Stichprobe von 20 APIs ergab eine fast 50/50-Aufteilung. Unabhängig davon, ob dies überzeugend ist oder nicht, können die Leute davon ausgehen, dass ihr gewählter Ansatz unter Berücksichtigung von Unix-Zeit oder ISO-8601 vernünftig ist und für andere Entwickler keine steile Lernkurve darstellen sollte.

Die Unix-Zeit ist völlig eindeutig. Es ist die Anzahl der Sekunden seit dem 1. Januar 1970. Es ist eine Zahl und die Konvertierung zwischen Formaten ist einfach. Besuchen Sie unix4lyfe für weitere Informationen, aber kurz gesagt, die Verwendung von Zahlen bietet viele Vorteile. Das Schöne an der Unix-Zeit ist, dass normalerweise nur sehr wenig Fehler überprüft werden und normalerweise ein Zeitstempel in der Datenbank gespeichert wird, sodass keine Konvertierung erforderlich ist.

Der Nachteil der Unix-Zeit besteht darin, dass sie nicht für Menschen lesbar ist. Zeitstempel sind grundsätzlich unverständlich, bis die Antwort oder Anfrage transformiert wurde. Während die Konvertierung für Computer nicht schwer ist, ist sie für Menschen schwierig, und wir wollten eine API schreiben, die andere Menschen nutzen können. Um dieses Problem zu lösen, verwenden Sie ISO-8601. Es stellt Daten in einem klar definierten, für Menschen lesbaren Zeichenfolgenformat dar. Dies ermöglicht eine einfachere Entwicklung, da man eine HTTP-GET-Anfrage an die API senden und den Zeitstempel überprüfen kann.

Meiner Meinung nach sollte eine REST-API ISO-8601 implementieren. Der einzige Vorteil der Unix-Zeit besteht darin, dass nur sehr wenige Konvertierungen in und aus der Datenbank erfolgen. Ich habe festgestellt, dass dieser Vorteil bestenfalls marginal ist. Die Konvertierung zwischen Zeichenfolgen im Format yyyy-MM-dd'T'HH:mm:ssZ fügt im schlimmsten Fall nur wenige Zyklen hinzu. Der Vorteil der ISO-8601 hinsichtlich der menschlichen Lesbarkeit kann nicht gemessen werden. Wenn ich mit der REST-API entwickle und mit dem Entwerfen meiner Abfragen beginne, schreibe ich sie manuell, ohne befürchten zu müssen, dass die Konvertierung von Zeitstempeln in Unix-Zeit möglicherweise mehr Zeit in Anspruch nimmt, als ich durch die Verwendung von Unix-Zeit einsparen kann.

Ursprünglicher Link: https://nickb.dev/blog/designing-a-rest-api-unix-time-vs-iso-8601/

おすすめ

転載: blog.csdn.net/yilovexing/article/details/128905689