我目前正在为RESTful API创建一组自定义媒体类型(例如application/vnd.mycompany.foo+xml),并尝试确定两种不同的暴露超媒体链接的优缺点。
如果首先考虑其他媒体类型,最好的起点可能是HTML。HTML允许我创建诸如以下链接:
我正在询问的问题是何时使用带有关系的链接元素更加合理,何时将属性添加到现有元素更加合理。
例如,AtomPub链接可以这样完成:
如果首先考虑其他媒体类型,最好的起点可能是HTML。HTML允许我创建诸如以下链接:
<image src="http://example.com/image.gif"/>
<a href="http://example.com/page.html"/>
<form action="http://example.com/page.html"/>
<link rel="stylesheet" type="text/css" href="theme.css" />
有趣的是,在某些情况下,某些特定的标签具有url属性,然后使用rel属性定义关系的通用链接标签。
在AtomPub中,资源之间也有一些链接方式。
<collection href="http://example.org/blog/main" >
<atom:title>My Blog Entries</atom:title>
<categories href="http://example.com/cats/forMain.cats" />
</collection>
<atom:category scheme="http://example.org/extra-cats/" term="joke" />
<atom:entry>
<link rel="edit" href="http://example.org/edit/first-post.atom"/>
</atom:entry>
我正在询问的问题是何时使用带有关系的链接元素更加合理,何时将属性添加到现有元素更加合理。
例如,AtomPub链接可以这样完成:
<collection>
<link rel="source" href="http://example.org/blog/main"/>
<atom:title>My Blog Entries</atom:title>
<categories>
<link rel="source" href="http://example.com/cats/forMain.cats"/>
</categories>
</collection>
<atom:category term="joke">
<link rel="scheme" href="http://example.org/extra-cats/"/>
<atom:category>
<atom:entry edit="http://example.org/edit/first-post.atom"/>
通常情况下,在写这个问题时,答案似乎显而易见。所需的链接作为属性暴露,可选的链接作为元素呈现。但是,我非常想听听其他人对于链接应该如何表示的看法。