基于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对象列表的有效方法是什么。是遍历每个链接并检索对象的正确方法吗?老实说,这对我没有意义?另外,我已经进行了许多讨论和实现,但是该主题似乎还不够成熟,并且在开发人员之间有很多敦促。