REST响应中的链接

REST响应中的链接,rest,hateoas,Rest,Hateoas,在HATEOAS范式中,REST响应中的链接表示什么,是动作还是资源?我有一个订单,有一个类型下拉列表。一些高级选项字段将根据这些选择加载到表单中 按照HATEOAS范式,客户机不应该知道或猜测从何处加载这些额外字段。因此,对于提供的每个选项,我都包含了1个链接。link对象上的rel属性应该提供关于链接意图的某种文档。这是正确的实现吗 网络上流行的咖啡店示例(在Ian Robinson的演讲和InfoQ的一篇文章中)使用链接确定下一个可用的状态转换。这些在精神上是等价的吗 我不会说您的示例正确

在HATEOAS范式中,REST响应中的链接表示什么,是动作还是资源?我有一个订单,有一个类型下拉列表。一些高级选项字段将根据这些选择加载到表单中

按照HATEOAS范式,客户机不应该知道或猜测从何处加载这些额外字段。因此,对于提供的每个选项,我都包含了1个链接。link对象上的
rel
属性应该提供关于链接意图的某种文档。这是正确的实现吗


网络上流行的咖啡店示例(在Ian Robinson的演讲和InfoQ的一篇文章中)使用链接确定下一个可用的状态转换。这些在精神上是等价的吗

我不会说您的示例正确或不正确,而是说它是一个兼容的超媒体链接。有不同类型的超媒体链接,你只需要找到最合适的。例如,有时将资源的链接关系与链接的资源分开是有意义的。使用XML,您可以执行以下操作:

<link rel="type1SpecialOptions" href="http:/yourDomain/specialOptions/type1" />
<link rel="type2SpecialOptions" href="http:/yourDomain/specialOptions/type2" />

而不是仍然有效的超媒体链接样式:

<link specialOptions="http:/yourDomain/specialOptions/type1" />
<link specialOptions="http:/yourDomain/specialOptions/type2" />


选择对应用程序有意义的链接类型。这对超媒体链接的类型有一个非常简短的解释。它假设您熟悉超媒体和REST的术语,因此请首先查看示例,然后按照不同链接类型的链接进行操作,以更好地了解可能的情况。

我不会说您的示例是正确的或不正确的,而是说它是一种兼容的超媒体链接有不同类型的超媒体链接,你只需要找到最合适的。例如,有时将资源的链接关系与链接的资源分开是有意义的。使用XML,您可以执行以下操作:

<link rel="type1SpecialOptions" href="http:/yourDomain/specialOptions/type1" />
<link rel="type2SpecialOptions" href="http:/yourDomain/specialOptions/type2" />

而不是仍然有效的超媒体链接样式:

<link specialOptions="http:/yourDomain/specialOptions/type1" />
<link specialOptions="http:/yourDomain/specialOptions/type2" />


选择对应用程序有意义的链接类型。这对超媒体链接的类型有一个非常简短的解释。它假设您熟悉超媒体和REST的术语,因此请首先查看示例,然后按照不同链接类型的链接进行操作,以更好地了解可能的情况。

您可以选择以下几种方法:

  • 定义表示可以对链接资源执行操作的自定义rel值。将这些记录在API文档中。(最好使用自文档化、可取消引用的HTTP URI作为rel值!)
  • 在媒体类型文档中定义,文档继承人权限中的某些超链接表示可以对其执行非GET请求的资源,其他位置的链接表示仅支持GET的资源。在这里,你可以说得很具体
  • 使用表单。某些媒体类型(XML、HTML)具有表单的概念。作为窗体动作的超链接是显式动作。请注意,如果没有AJAX,浏览器目前只支持POST
  • 使用
    OPTIONS
    返回
    Allow:
    标题,提供有关可以执行的操作的信息。此选择需要第二次往返,但除上述三种选择中的一种或多种外,还可以提供支持

  • 您可以选择以下几种方式:

  • 定义表示可以对链接资源执行操作的自定义rel值。将这些记录在API文档中。(最好使用自文档化、可取消引用的HTTP URI作为rel值!)
  • 在媒体类型文档中定义,文档继承人权限中的某些超链接表示可以对其执行非GET请求的资源,其他位置的链接表示仅支持GET的资源。在这里,你可以说得很具体
  • 使用表单。某些媒体类型(XML、HTML)具有表单的概念。作为窗体动作的超链接是显式动作。请注意,如果没有AJAX,浏览器目前只支持POST
  • 使用
    OPTIONS
    返回
    Allow:
    标题,提供有关可以执行的操作的信息。此选择需要第二次往返,但除上述三种选择中的一种或多种外,还可以提供支持