使用HAL API端点返回链接列表的正确客户端实现是什么

时间:2019-10-22 14:50:49

标签: api asp.net-web-api hateoas hal

基于Richardson Maturity Model,某些API系统是在考虑Level 3 - Hypermedia API architecture style的情况下实现的。由于我仍然担心它仍然是Internet草案(“正在进行中的工作”),因此我目前正在处理其中一个系统,并且正在努力创建客户端通用实现来对其进行处理。

首先,我有一个基本场景作为显示的问题的标题。我正在使用C#。消费一个HAL API端点,该端点返回一个如下所示的json,您可以在CarsApiHeaderModels内看到一个对象数组,其中包含指向每个对象的链接,因此我可以浏览:

    {
    "proberty1": "value1",
    "proberty2": "value2",
    "CarsApiHeaderModels": [
        {
            "CarId": "e41b63e6-3678-4f79-92da-aabc00da06b3",
            "CarReference": "xxxxx",
            "_links": [
                {
                    "Rel": "getCar",
                    "Href": "api/CarApi/e41b63e6-3678-4f79-92da-aabc00da06b3",
                    "Title": null,
                    "IsTemplated": false
                },
                {
                    "Rel": "getCar",
                    "Href": "api/CarApi/7b05bde2-aa55-4400-9343-98ba3287ca03",
                    "Title": null,
                    "IsTemplated": false
                }
            ],
            "_embedded": null
        }
    ],
    "TotalCount": 2,
    "_links": [
        {
            "Rel": "self",
            "Href": "api/CarListApi?proberty1=value1&proberty2=value2",
            "Title": null,
            "IsTemplated": false
        }
    ],
    "_embedded": null
}

我想获取一个List<Car>,而不是CarsApiHeaderModels下显示的汽车资源端点的链接列表,但是因为我正在处理符合HAL要求的API,所以这就是我要得到的。 / p>

在C#客户端中,获取Car对象列表的有效方法是什么。是遍历每个链接并检索对象的正确方法吗?老实说,这对我没有意义?另外,我已经进行了许多讨论和实现,但是该主题似乎还不够成熟,并且在开发人员之间有很多敦促。

0 个答案:

没有答案