问题标签 [curie]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1498 浏览

spring - 通过 RestTemplate 用 HAL+JSON CURIE 交换 Spring 超媒体资源

我正在使用 Spring Framework 4.1.0 和 Spring HATEOAS 0.16.0 为该应用程序开发 Spring Web 应用程序和 Spring 测试客户端。

测试客户端有如下语句:

...其中Calculation是带有 Jackson 注释的 POJO(例如,@JsonProperty)。

如果没有 CURIE,则该RestTemplate.exchange()调用会成功:response.getBody().getLinks()返回 的非空非空实例List<Link>

我的 Web 应用程序具有非标准链接关系,例如“子计算”。我想使用 CURIE。

使用 CURIE,该RestTemplate.exchange()调用失败:响应反序列化代码抛出org.springframework.http.converter.HttpMessageNotReadableException,原因是com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:'无法读取 JSON:无法识别的字段“名称”(类 org.springframework.hateoas.Link),未标记为可忽略(一个已知属性“href” ])'

_links特别是,Jackson 无法将响应 JSON 中的映射中的 CURIE(s) 反序列化到List<Link>-typed field org.springframework.hateoas.ResourceSupport.links。响应 JSON 如下所示:

我如何使用RestTemplate.exchange()获取HAL+JSON(“application/hal+json”)表示使用 CURIE 的资源?

0 投票
2 回答
4547 浏览

json - 谁能很好地解释 CURIE 以及如何使用它们?

我见过HAL 规范中描述的 CURIE 。乍一看,它看起来像是一种为 URI 提供模板的方法。但是,我也看到它突出地提到它可以用于访问rel. 哪一个?它只是一个模板机制吗?有没有人有一个好的用例的例子?

此外,以下是否是 CURIE 的合法使用?或者它应该只用于提供关于 a 的文档rel吗?

这里bundle:channels将扩展为http://my.api.com/bundles/1/channels.

0 投票
1 回答
40 浏览

api - 可以将使用 CURIE 的 rel 用于项目的单个实例和这些相同项目的集合吗?

在我的 API 中,我的 rel 看起来像这样:

对于单个项目

在另一个资源上,我有多个activity-resource. 我应该如何表示这一点?以下是否可以:

对于一个集合

这有点道理,因为它们仍然是 的实例activity-resource,并且人们可以查看文档以获取有关如何处理这些资源的信息。但是,现在我的 API 有点不一致,因为在某些表示中api:activities/activity-resourcerel 指向单个实例,而在其他表示中它指向一个集合。

我可以论证开发人员可以从 API 文档中弄清楚他/她需要做什么,但它也有助于拥有一致的 API。

0 投票
1 回答
2152 浏览

rest - 居里在春天 HATEOAS

我正在使用 Spring Boot 和 HATEOAS 来构建一个 REST API,我正在为居里创建而苦苦挣扎。Spring HATEOAS 指南说,为了在响应中自动插入居里,您应该执行以下操作:

我的配置类是这样的:

我尝试将@EnableWebMvc 添加到我的配置类中,但它改变了响应的呈现(hal)并且居里不出现。我必须在控制器上做些什么来创建居里?

更新: 我更新了 Spring Hateoas(到 0.17.0.RELEASE),现在我的集合名称用居里呈现,但居里没有出现在 _links 部分:

如果我在 _links 部分添加一个链接,则会出现居里链接:

这是我的控制器:

0 投票
1 回答
138 浏览

c# - 使用 Halcyon.net 生成居里

使用 Halcyon .NET 库 ( https://github.com/visualeyes/halcyon ),我可以生成原型 API 所需的 HAL ( http://stateless.co/hal_specification.html ) 输出。

但是,我想添加居里以记录我的一些 rel 类型的附加语义。我看不到使用提供的 API 将居里添加为链接的方法。

我试过了:

但这会导致输出缺少name居里的关键属性:

如何正确生成居里链接?(也许是不同的库?)要清楚,预期的“居里”数组应该如下所示: