Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 收集+;链接到其他集合的JSON项';s项目_Node.js_Rest_Web_Collection Json - Fatal编程技术网

Node.js 收集+;链接到其他集合的JSON项';s项目

Node.js 收集+;链接到其他集合的JSON项';s项目,node.js,rest,web,collection-json,Node.js,Rest,Web,Collection Json,我正在nodejs中做一个restweb服务器,我想用超媒体类型实现它 但是,我不明白是否可以在集合1到n的关系中表示。 因此,例如,如果我有一个收集篮,可以使篮内的项目指向其他已定义收集的项目?您可以使用,其描述如下: 指一个资源,该资源表示 当前资源是一个成员 这似乎满足了您的需要。使用传统的电子商务示例,下面是产品集合JSON端点的结构。请注意,您的客户机应该按rel标记分组。您的rel标签列表是您与客户的“合同”。“此rel标签始终意味着。” 在本例中,客户机将知道“swatch”rel

我正在nodejs中做一个restweb服务器,我想用超媒体类型实现它

但是,我不明白是否可以在集合1到n的关系中表示。 因此,例如,如果我有一个收集篮,可以使篮内的项目指向其他已定义收集的项目?

您可以使用,其描述如下:

指一个资源,该资源表示 当前资源是一个成员


这似乎满足了您的需要。

使用传统的电子商务示例,下面是产品集合JSON端点的结构。请注意,您的客户机应该按rel标记分组。您的rel标签列表是您与客户的“合同”。“此rel标签始终意味着。”

在本例中,客户机将知道“swatch”rel标记的存在意味着它应该显示色样部分。。。每个“rel标记”对应一个样例。如果有1个样例与多个样例,则客户端的渲染可能会有所不同


您想要扩展collection+JSON()是可以理解的。collection+JSON的冗长语法(我最初认为这是一个问题)实际上提供了一种很好的扩展方法,同时保持向后兼容性。

您应该研究超媒体API。也许这就是你要找的。
"collection":
{
  "href": "/products/1234.json",
  "items":
  [
    {
      "name": "name",
      "value": "10 Speed Bike"
    }
    {
      "name": "manufacturer",
      "value": "Schwin"
    }
    {
      "name": "price",
      "value": 150.00
    }
  ],
  "links":
  [
    {
      "href": "/products/1234/attachments/flier.pdf",
      "rel": "attachment",
      "prompt": "Flier from the Manufacturer",
      "render": "link"
    },
    {
      "href": "/products/1234/attachments/specs.pdf",
      "rel": "attachment",
      "prompt": "Spec Sheet from Manufacturer",
      "render": "link"
    },
    {
      "href": "/products/1234/attachments/warranty.pdf",
      "rel": "attachment",
      "prompt": "Limited Lifetime Warranty",
      "render": "link"
    },
    {
      "href": "/store/attachments/returns.pdf",
      "rel": "attachment",
      "prompt": "Our Return Policy",
      "render": "link"
    },
    {
      "href": "/images/1235478324.png",
      "rel": "product-image",
      "prompt": "A Schwin 10-speed bike in red",
      "render": "image"
    },
    {
      "href": "/images/1235478355.png",
      "rel": "product-image",
      "prompt": "A girl riding a 10-speed bike.",
      "render": "image"
    },
    {
      "href": "/images/1235478385.png",
      "rel": "product-image",
      "prompt": "A grandma watching grandkids ride bicycles.",
      "render": "image"
    },
    {
      "href": "/images/1235478545.png",
      "rel": "swatch",
      "prompt": "Radiant Red",
      "render": "image"
    },
    {
      "href": "/images/1235478545.png",
      "rel": "swatch",
      "prompt": "Brilliant Blue",
      "render": "image"
    },
    {
      "href": "/images/1235478588.png",
      "rel": "swatch",
      "prompt": "Stunning Silver",
      "render": "image"
    },
    {
      "href": "/blog/2014/07/26",
      "rel": "content",
      "prompt": "Our store now sells Schwin bicycles!",
      "render": "link"
    },
    {
      "href": "/manufacturers/schwin",
      "rel": "manufacturer",
      "prompt": "Schwin",
      "render": "link"
    },      ]
}