使用 Halcyon .NET 库 ( https://github.com/visualeyes/halcyon ),我可以生成原型 API 所需的 HAL ( http://stateless.co/hal_specification.html ) 输出。
但是,我想添加居里以记录我的一些 rel 类型的附加语义。我看不到使用提供的 API 将居里添加为链接的方法。
我试过了:
public class LinkBuilder
{
public static readonly Link[] Curies =
{
new Link("curies", "http://test.com/api/docs/rels/{rel}", replaceParameters: false, isRelArray: true)
};
public static Link AsProductFamilyLink(int familyId)
{
return new Link("tns:product-family", $"/product-family/{familyId}");
}
/* snip */
}
但这会导致输出缺少name
居里的关键属性:
{
"id": 2,
"name": "Chips",
"unitPrice": 0,
"_links": {
"delete-product": {
"href": "/product/2",
"method": "DELETE",
"title": "Delete product"
},
"tns:product-family": {
"href": "/product-family/1"
},
"self": {
"href": "/product/2",
"method": "GET"
},
"curies": [
{
"href": "http://test.com/api/docs/rels/{rel}",
"templated": true
}
]
}
}
如何正确生成居里链接?(也许是不同的库?)要清楚,预期的“居里”数组应该如下所示:
[
{
"name": "tns",
"href": "http://test.com/api/docs/rels/{rel}",
"templated": true
}
]