5

我正在构建一个接受 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 中表示日期/时间的标准/约定?

4

2 回答 2

6

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

检查这个:http ://en.wikipedia.org/wiki/ISO_8601

于 2013-08-29T11:27:18.087 回答
1

您可以:在 URI 路径中使用。

冒号是保留字符,但它在路径段中没有定界作用。所以以下应该适用:

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

相对路径引用只有一个例外:

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

请注意,某些编码库可能无论如何都会对冒号进行百分比编码。

于 2013-08-31T12:17:07.757 回答