gpt4 book ai didi

xml - 在自定义媒体类型中创建超媒体链接

转载 作者:数据小太阳 更新时间:2023-10-29 01:45:24 26 4
gpt4 key购买 nike

我目前正在为 RESTful api 创建一组自定义媒体类型(例如 application/vnd.mycompany.foo+xml),我正在尝试确定公开超媒体链接的两种不同方式的优缺点。

如果我首先考虑其他媒体类型的作用,最好的起点可能是 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"/>

通常情况下,在写这个问题时,答案现在似乎是显而易见的。必需的链接作为属性公开,可选的链接作为元素公开。但是,我很想听听其他人对应该如何表示链接的看法。

最佳答案

我相信您的两个 Atom 示例在语义上是等价的。在 Atom 规范中有几个地方将没有关系的链接视为默认链接(我不记得他们称之为“self”还是“source”)。就个人而言,我最喜欢第二个 AtomPub 示例,因为 Atom Entry 中的链接元素(通常是处理 Atom 时最常用的对象)定义了具有关系的链接元素,并在类别、集合和工作空间中使用相同的模式元素意味着无需了解很多特殊条件就可以更轻松地解析。

我略微忽略了第一个 HTML 示例,因为原始 HTML 从来没有像 Atom 那样真正用于机器通信,因此(IMO)从语义上理解 HTML 更加困难,并且需要大量特定规则来处理每个不同类型的标签。

关于xml - 在自定义媒体类型中创建超媒体链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1271962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com