推荐的REST GET API的date格式

REST GET API的推荐时间戳格式是什么?

http://api.example.com/start_date/{timestamp} 

我认为实际的date格式应该是ISO 8601格式,例如UTC时间的YYYY-MM-DDThh:mm:ssZ

我们是否应该使用不带连字符和冒号的ISO 8601版本,例如:

 http://api.example.com/start_date/YYYYMMDDThhmmssZ 

还是应该使用base64编码来编码ISO 8601格式?

REST没有推荐的date格式。 真的,它归结为什么最适合您的最终用户和您的系统。 就个人而言,我想要坚持像ISO 8601(url编码)的标准。

如果没有丑陋的URI是一个问题(例如不包括URL编码版本, 在你的URI中)和(人类)可寻址性并不重要,你也可以考虑历元时间(例如http://example.com/start/1331162374 )。 该URL看起来更清洁一点,但是你肯定会失去可读性。

/2012/03/07是你看到很多的另一种格式。 你可以扩大我的想法。 如果你走这条路线,只要确保你总是在格林尼治标准时间(并在文档中明确说明),或者你可能还想包括某种时区指标。

最终归结为什么适用于您的API和最终用户。 你的API应该适合你,而不是你的;-)。

查阅这篇文章的APIdate和时间的5个法律这里 :

  • 法则1:在您的date使用ISO-8601
  • 法则2:接受任何时区
  • 法则3:以UTC存储
  • 法则4:以UTC来回传
  • 第五法则:如果你不需要的话,不要用时间

更多信息在文档中。

RFC6690 – 约束RESTful环境(CoRE)链接格式虽然没有明确规定date格式应该在第2节中。链接格式指向RFC 3986。这意味着应该使用RFC 3986中datetypes的build议。

基本上RFC 3339在互联网上的date和时间是一个文件,看看这样说:

date和时间格式,用于互联网协议,这是ISO 8601标准的简介,用于使用公历来表示date和时间。

这可归结为: YYYY-MM-ddTHH:mm:ss.ss±hh:mm

(例如1937-01-01T12:00:27.87 + 00:20)

是最安全的赌注。

Interesting Posts