Was ist das empfohlene Zeitstempelformat für eine REST GET-API wie diese:
http://api.example.com/start_date/{timestamp}
Ich denke, das tatsächliche Datumsformat sollte das ISO 8601-Format sein, beispielsweise YYYY-MM-DDThh:mm:ssZ
für die UTC-Zeit.
Sollten wir die ISO 8601-Version ohne Bindestriche und Doppelpunkte verwenden, wie z.
http://api.example.com/start_date/YYYYMMDDThhmmssZ
oder sollten wir das ISO 8601-Format codieren, zum Beispiel mit Base64-Codierung?
Antworten:
REST hat kein empfohlenes Datumsformat. Es läuft wirklich darauf hinaus, was für Ihren Endbenutzer und Ihr System am besten funktioniert. Persönlich möchte ich mich an einen Standard halten, wie Sie ihn für ISO 8601 (URL-codiert) haben.
Wenn nicht mit hässlichen URI ein Anliegen ist (zB nicht mit der URL codierten Version von
:
,-
,in Sie URI) und (human) Adressierbarkeit ist nicht so wichtig, könnten Sie auch Epoche Zeit (zB betrachten
http://example.com/start/1331162374
). Die URL sieht etwas sauberer aus, aber Sie verlieren sicherlich die Lesbarkeit.Das
/2012/03/07
ist ein anderes Format, das Sie oft sehen. Sie könnten das erweitern, nehme ich an. Wenn Sie diesen Weg gehen, stellen Sie einfach sicher, dass Sie entweder immer in GMT-Zeit sind (und machen Sie dies in Ihrer Dokumentation deutlich), oder Sie möchten möglicherweise auch eine Art Zeitzonenindikator einfügen.Letztendlich läuft es darauf hinaus, was für Ihre API und Ihren Endbenutzer funktioniert. Deine API sollte für dich funktionieren, nicht du dafür ;-).
quelle
http://api.example.com/start_date/YYYYMMDDThhmmssZ
) entscheiden, die gut für die Lesbarkeit und saubere URLs ist.In diesem Artikel finden Sie HIER die 5 Gesetze zu API-Daten und -Zeiten :
Weitere Infos in den Dokumenten.
quelle
2017-11-20T11%3A00%3A00Z
es einfach nicht sehr lesbar ist. Außerdem (IIS-spezifisch) scheint es sehr paranoid zu sein, Doppelpunkte in URLs zu verwenden, selbst wenn sie codiert sind.RFC6690 - CoRE-Link-Format (Constrained RESTful Environments) Gibt jedoch nicht explizit an, welches Datumsformat in Abschnitt 2 angegeben werden soll. Das Link-Format verweist auf RFC 3986. Dies impliziert, dass die Empfehlung für den Datumstyp in RFC 3986 verwendet werden sollte.
Grundsätzlich ist RFC 3339 Datum und Uhrzeit im Internet das zu betrachtende Dokument, das lautet:
worauf es ankommt : JJJJ-MM-TTTHH: mm: ss.ss ± hh: mm
(zB 1937-01-01T12: 00: 27.87 + 00: 20)
Ist die sicherste Wette.
quelle
Jedes Datum / Uhrzeit-Feld in der Eingabe / Ausgabe muss im UNIX / Epoch- Format vorliegen. Dies vermeidet die Verwirrung zwischen Entwicklern auf verschiedenen Seiten der API.
Vorteile:
Nachteile:
Anmerkungen:
quelle
Verwenden Sie immer UTC:
Zum Beispiel habe ich eine Zeitplankomponente, die einen Parameter DATETIME akzeptiert. Wenn ich dies mit einem GET-Verb aufrufe, verwende ich das folgende Format, in dem mein eingehender Parametername ScheduleDate lautet.
Beispiel:
https: // localhost / api / getScheduleForDate? ScheduleDate = 2003-11-21T01: 11: 11Z
quelle