0

使用 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
   }
]
4

1 回答 1

1

设置 CURIE 链接的 Name 属性:

new Link("curies", "http://test.com/api/docs/rels/{rel}", replaceParameters: false, isRelArray: true)
{
    Name = "tns"
};
于 2018-12-03T23:00:48.550 回答