如何在遵循REST的同时在HAL(JSON版本)中表示集合

前端之家收集整理的这篇文章主要介绍了如何在遵循REST的同时在HAL(JSON版本)中表示集合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一系列书籍,我们称之为图书馆. GET domain.com/library应该以符合HAL标准的 JSON返回库中的书籍列表.我该如何格式化JSON?我怎么能嵌入书籍资源?这是我目前正在考虑的格式:
{
  "books": [
      {
          "name": "Fight Club","_links": {
              "self": { 
                  "href": "domain.com/library/Fight-Club"
              },},...
      },....
  ],"_links" : {
       "search": { 
           "href": "domain.com/library/search"
       },...
   },"_embedded" : {
       "Fight Club": {
           "author": "Chuck Palahniuk",...
           [Same links as above]
       }
   }
}

解决方法

在编写HAL规范时,_embedded对象用于给定资源的子资源.所以你的骨架HAL JSON看起来像这样.
{
    "_links": {
        "self": {
            "href": "/library"
        }
    },"_embedded": {
        "item": [{
            "_links": {
                "self": {
                    "href": "/library/Fight-Club"
                }
            },"author": "Chuck Palahniuk","title":  "Fight Club"
        }]
    }
}

_embedded对象的直接属性link relations.项关系是标准关系,表示资源是属于上下文资源的项(在本例中是您的库).您可以使用CURIEs创建自定义链接关系.

请注意顶级对象中缺少books数组.如果您愿意,可以包括它,但这只是一种便利. HAL库只会知道你放在_links和_embedded中的内容.有关HAL中的集合以及决定数据放置位置的人为因素,请参阅此discussion.

猜你在找的JavaScript相关文章