添加HATEOAS链接到响应

时间:2018-01-20 13:19:44

标签: c# rest asp.net-web-api hateoas

我正在努力在回复中包含hateoas链接。 具体来说,对于kitIncludes字段。我希望有一个指向每条记录的链接。 例如,products / jason-component

我在哪里可以找到这个链接?它是kitIncludes字段中的字段吗?或者这应该在淘汰赛领域的链接中?

{
"links": [
    {
        "rel": "self",
        "href": "http://localhost:60778/v2/products?page=0&limit=100"
    },
    {
        "rel": "first",
        "href": "http://localhost:60778/v2/products?page=0&limit=100"
    },
    {
        "rel": "last",
        "href": "http://localhost:60778/v2/products?page=0&limit=100"
    }
],
"metadata": {
    "totalRecords": 1
},
"entities": [
    {
        "additionalDimensions": null,
        "assemblyInstructionsUrl": null,           
        "detailedDescription": null,
        "dimensionSketch": null,
        "kitIncludes": [
            {
                "sku": "jason-component",
                "quantity": 12
            }
        ],
        "fobBasePrice": 0,
        "friendlyDescription": null,  
        "itemsPerCase": 1,
        "itemType": "Kit",
        "itemWeightKg": 0,
        "itemWeightLbs": 0,
        "knockout": null,            
        "links": [
            {
                "rel": "self",
                "href": "/products/JASON-KIT"
            },
            {
                "rel": "series",
                "href": "/series/"
            }
        ],
        "manufacturerWarrantyDays": 0,
        "mechanismGuideUrl": null,           
        "partsDrawingUrl": null,
        "productDetails": null,
        "productVideo": null,    
        "upc": null,
        "vendorName": "Test"
    }
]

}

1 个答案:

答案 0 :(得分:1)

  

我在哪里有这个链接?

您可能需要查看

从长远来看,使用通用媒体类型进行表示可能会减少工作量,而不是试图自己动手。

在大多数情况下,他们共同分享这个想法:如果您在表示中找到了一些元素,并且想要查看它是否有任何链接,那么您需要查找的路径始终位于相同的位置对于元素本身。

这表明您应该为每个kitIncludes条目设置一个链接集合。

这应该是有道理的:你会如何用网页做到这一点?你会在一个地方有一堆kitIncludes的描述,然后在文档的其他地方有一堆超链接吗?您更有可能将链接嵌入到项目本身的描述中。