是否有用于在URI中表示日期/时间的标准格式?

时间:2013-08-29 11:21:29

标签: api datetime uri

我正在构建一个接受DateTime作为参数的API端点 建议不要将:字符用作URI的一部分,因此我不能简单地使用ISO 8601格式。

到目前为止,我考虑过两种格式:

A)作为分钟分隔符的感叹号:

http://api.example.com/resource/2013-08-29T12!15

看起来不自然,即使有明确的文档,API使用者也一定会犯错误。

B)每个DateTime部分的URI段:

http://api.example.com/resource/2013/08/29/12/15

看起来不可读。此外,一旦我添加了更多的数字参数 - 它将变得难以理解!

是否有用于在URI中表示日期/时间的标准/约定?

2 个答案:

答案 0 :(得分:6)

我使用数据交换标准格式。

请检查:http://en.wikipedia.org/wiki/ISO_8601

答案 1 :(得分:1)

您可以在URI路径中使用:

冒号是保留字符,但它在路径段中没有分隔符。因此following应该适用:

  

如果在URI组件中找到保留字符且该字符没有已知的分隔角色,则必须将其解释为表示与US-ASCII中该字符的编码对应的数据八位字节。

只有一个exception for relative-path references

  

包含冒号字符的路径段(例如,“this:that”)不能用作相对路径引用的第一个段,因为它会被误认为是方案名称。这样的片段前面必须有一个点片段(例如“./this:that”)来制作相对路径参考。

但是note一些编码库可能会对冒号进行百分比编码。