url在url中用于RESTful服务,构建url路径

时间:2011-07-15 22:25:47

标签: url rest urn

我们正致力于创建RESTFul服务,并尝试确定URL路径格式。

我们有 urn 用于在整个组织中唯一标识资源,我们正在构建Rest服务,以请求者通过http内容协商寻找的格式为该资源提供服务。

我的问题是我们应该如何形成服务网址的路径,哪一个更有意义。

http://{domain}/{somethinghere}/{full urn string}
or
http://{domain}/{somethinghere}/{urn-part-1}/{urn-part-2}/{urn-part-3}

1 个答案:

答案 0 :(得分:3)

我也有同样的问题!...恕我直言,我会使用完整的字符串,

http://{domain}/{somethinghere}/{full urn string}

它优雅,半合法,并且具有用户友好的功能,可以更容易地将URN字符串复制并粘贴到您的URL中。这是我做过的一些功课:

有一个旧的实验RFC 2169建议输入完整的urn字符串,而不是%引用冒号(:)。这是干净而优雅的......在野外有冒号的例子,例如

http://en.wikipedia.org/wiki/Talk:Buckminster_Fuller

我担心的一个问题(任何人都可以确认或拒绝吗?)是因为某些浏览器,服务器,框架或工具可能会尝试引用或以其他方式阻塞冒号,因为它们可能会对冒号产生什么样的假设表示。

RFC 1630和其他RFC都没有明确是否可以在http方案的路径中使用冒号。但是有一个警告!冒号的放置对于确定URL是否是绝对的很重要(这在RFC 1630中的“部分(相对)形式”部分中指定)。如果冒号出现在斜杠(/)之前,则URL是绝对的。 (N.B.冒号在RFC中被称为“保留”分隔符,但它的预期用途很明确,并不排除在路径中使用。)

我喜欢这里有更多关于这一点的想法......(而不仅仅是简单地删除所有内容的斜线编码,因为这不是那么优雅)。