Apa format stempel waktu yang direkomendasikan untuk REST GET API seperti ini:
http://api.example.com/start_date/{timestamp}
Saya rasa format tanggal sebenarnya harus dalam format ISO 8601, seperti YYYY-MM-DDThh:mm:ssZ
untuk waktu UTC.
Haruskah kita menggunakan versi ISO 8601 tanpa tanda hubung dan titik dua, seperti:
http://api.example.com/start_date/YYYYMMDDThhmmssZ
atau haruskah kita menyandikan format ISO 8601, menggunakan misalnya pengkodean base64?
Jawaban:
REST tidak memiliki format tanggal yang direkomendasikan. Benar-benar intinya pada apa yang terbaik untuk pengguna akhir dan sistem Anda. Secara pribadi, saya ingin tetap berpegang pada standar seperti yang Anda miliki untuk ISO 8601 (dikodekan url).
Jika tidak memiliki jelek URI adalah kekhawatiran (misalnya tidak termasuk url versi dikodekan dari
:
,-
,di dalam kamu URI) dan (manusia) addressability tidak sepenting, Anda juga dapat mempertimbangkan waktu zaman (misalnya
http://example.com/start/1331162374
). URL terlihat sedikit lebih bersih, tetapi Anda pasti kehilangan keterbacaan.Ini
/2012/03/07
adalah format lain yang sering Anda lihat. Anda bisa mengembangkannya, saya kira. Jika Anda mengikuti rute ini, pastikan Anda selalu dalam waktu GMT (dan jelaskan dalam dokumentasi Anda) atau Anda mungkin juga ingin memasukkan semacam indikator zona waktu.Pada akhirnya, intinya pada apa yang berhasil untuk API dan pengguna akhir Anda. API Anda seharusnya bekerja untuk Anda, bukan Anda untuk itu ;-).
sumber
http://api.example.com/start_date/YYYYMMDDThhmmssZ
) yang baik untuk keterbacaan dan URL yang bersih.Periksa artikel ini untuk 5 hukum tanggal dan waktu API DI SINI :
Info lebih lanjut di dokumen.
sumber
2017-11-20T11%3A00%3A00Z
tidak terlalu mudah dibaca. Juga (khusus IIS) tampaknya sangat paranoid tentang titik dua di URL meskipun mereka dikodekan.RFC6690 - Format Link Constrained RESTful Environments (CoRE) Tidak secara eksplisit menyatakan format Tanggal apa yang harus digunakan, namun di bagian 2. Format Link mengacu pada RFC 3986. Ini menyiratkan bahwa rekomendasi untuk jenis tanggal di RFC 3986 harus digunakan.
Pada dasarnya RFC 3339 Tanggal dan Waktu di Internet adalah dokumen yang harus dilihat yang mengatakan:
intinya: YYYY-MM-hhTHH: mm: ss.ss ± hh: mm
(mis. 1937-01-01T12: 00: 27.87 + 00: 20)
Adalah taruhan teraman.
sumber
Setiap bidang datetime dalam input / output harus dalam format UNIX / epoch . Ini menghindari kebingungan di antara developer di berbagai sisi API.
Kelebihan:
Kekurangan:
Catatan:
sumber
Selalu gunakan UTC:
Misalnya saya memiliki komponen jadwal yang mengambil satu parameter DATETIME. Ketika saya memanggil ini menggunakan kata kerja GET, saya menggunakan format berikut di mana nama parameter masuk saya adalah scheduleDate.
Contoh:
https: // localhost / api / getScheduleForDate? ScheduleDate = 2003-11-21T01: 11: 11Z
sumber