2010-07-19 47 views
0

Microformats spec for RESTful URLsREST风格的URL和文件夹

GET /people/1
返回HTML格式的第一记录

GET /people/1.html
返回HTML格式的第一记录

/people返回的人的名单

所以是/people.html正确的方式返回HTML格式的人列表?

+1

/people.'json' - Typo? – 2010-07-19 17:07:38

+0

Blob,我认为你“纠正”了错误的错字。请仔细阅读您的问题。 – 2010-07-19 17:23:28

+0

更好吗? – tjvr 2010-07-20 07:58:17

回答

1

如果你只是参考URL路径扩展,那么,是的,该计划是为内容协商推荐行为:

  • 没有扩展路径是(对任何接受的格式如/people)的通用网址
  • 与延伸路径是一个特定的URL(例如/people.json作为JSON数据格式的内容类型特定URL)

利用这样的方案中的服务器可以使用内容协商时的一般URL是请求并在请求特定URL时以特定表示做出响应。

文档建议这个方案是其中包括:

0

它说GET /people/1.json应该返回JSON格式的第一条记录。 - 这是有道理的。

1

你有正确的想法。 /people/people.html都会返回HTML格式的人员列表,/people.json会返回JSON格式的人员列表。

关于将这些数据类型扩展应用到URL中的“文件夹”,不应该对此产生困惑。在示例列表中,/people/1本身被用作各种其他查询的文件夹。

+0

谢谢!很高兴知道,因为Microformats规范并不清楚。 – tjvr 2010-07-19 17:22:33

0

URI和你如何设计他们什么都没有做是基于REST的或不。

这是一个常见的做法,你要问什么,因为这就是Apache网络服务器如何工作。假设您有foo.txt和foo.html和foo.pdf,并且询问GET /foo没有偏好(即没有0​​标头)。一个300 MULTIPLE CHOICES将返回与三个文件的列表,以便用户可以选择。由于浏览器做了如此奇妙的内容协商,因此很难链接到一个示例,但这里是:An example显示它的外观,除非您首先看到页面的原因是文件名称的不同情况(“ XSLT“vs”xslt“)。

但是这个Apache的行为在约定和不同的工具中都有回应,但实际上并不重要。您可以将people_htmlpeople?format=htmlpeople.htmlsandwiches123qweazrfvbnhyrewsxc6yhn8uk作为以HTML格式返回人员的URI。 客户端不知道前面的这些URI,它应该从其他资源中获知。一个人可以看到<a href="/sandwiches">All People (HTML format)</a>的结果,并理解发生了什么,而忽略了奇怪的外观URI。

在一个闭注,微格式的URL约定页是绝对不是规范的REST风格的URL,它只是在做的URI,显然很容易因为某些原因或其他各种HTTP库来使用指导,与REST完全无关。这些指导方针都非常完美,并且遵循这些指导方针使您的URI看起来对于发现浏览URI的其他人更为理智(/sandwiches毫无疑问是奇怪的)。但即使引用的AtomPub协议也不要求条目在“收藏”范围内生存......