我正在构建一个接受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中表示日期/时间的标准/约定?
答案 0 :(得分:6)
我使用数据交换标准格式。
答案 1 :(得分:1)
您可以在URI路径中使用:
。
冒号是保留字符,但它在路径段中没有分隔符。因此following应该适用:
如果在URI组件中找到保留字符且该字符没有已知的分隔角色,则必须将其解释为表示与US-ASCII中该字符的编码对应的数据八位字节。
只有一个exception for relative-path references:
包含冒号字符的路径段(例如,“this:that”)不能用作相对路径引用的第一个段,因为它会被误认为是方案名称。这样的片段前面必须有一个点片段(例如“./this:that”)来制作相对路径参考。
但是note一些编码库可能会对冒号进行百分比编码。