问题标签 [hal-json]
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.
ember.js - 在 Ember 中使用自定义序列化程序和来自 Apigility 的 hal json
所以我正在构建我们网站的前端,长话短说,我们的 API 调用的位置是通过apigility。我对 Ember 还很陌生,所以我不得不将很多信息拼凑在一起,以找到完成这项工作的最佳方式。apigility 设置为提供 REST 服务,但输出格式如下:
首先,因为我只是在尝试进行概念验证,所以这是我的序列化程序:
我还在为我的适配器使用 RESTAdapter。
最后是我的 article.js 模型
它目前给我的错误是:
从那个错误中,我觉得它正确地从我的 api 调用中获取了“文章”部分,但 primaryKey 部分似乎没有生效。
如果我删除我的序列化程序的内容,我会得到以下错误列表:
让我知道是否需要包含任何其他信息/代码。
编辑
注意:API 开发人员确实将其从“nid”更改为“id”
有时你只需要从头开始,对吧?
这就是我的序列化程序现在的样子,它按预期工作:
spring-data-rest - 如何使用 @FeignClient 映射 HAL JSON _embedded 集合
我们正在尝试使用 spring-cloud@FeignClient
从另一个微服务调用微服务的 HAL-JSON REST API。该服务使用 Spring Data Rest、Spring Boot 1.4 实现,默认启用 Hateoas。
在客户端使用专用 DTO,所有简单属性都被正确映射,但 HAL 特定_embedded
集合被忽略。
主要取自这篇文章,我们使用经常提到的 实现了一个Decoder
带有相应的自定义 Feign ,但这仍然不能解决我们的问题。ObjectMapper
Jackson2HalModule
您可以使用此示例项目重现该问题,其中更详细地描述了该问题。
我们感谢有关此问题的任何帮助或提示!提前致谢
android - Android/改造 HAL JSON 支持
我在我的 Android 项目中使用 Retrofit 来处理 REST Web 服务调用。现在我需要添加对 HAL JSON 的支持,以便能够将项目动态添加到我的列表中(在 scool 上加载更多内容)。HalJson:http ://stateless.co/hal_specification.html
有人知道如何用改造来处理它吗?
java - 当页面没有元素时返回一个空的“内容”数组
从AbstractRepositoryRestController#entitiesToResources
来源:
"content"
当页面没有元素时,Spring Data REST 会在节点中放入一个包含无用信息的对象(在我看来),例如:
- 提供该信息的想法/目的是什么?
- 有什么方法可以在什么
"content": []
时候返回一个空数组page.getContent().isEmpty()
? - 如果不可能,那么客户应该如何处理这种意想不到的格式?
他们解析content
对它的迭代,并将每个元素映射到某个域实体。由于它不是域实体,因此它们失败了。获取第一个元素并检查是否存在某些特定字段(例如relTargetType
)看起来很脏,不是吗?
json - Wordpress REST API 使用 Content-Type:application/json 与 Content-Type:application/json+hal
我已经使用 Wordpress REST API(本机)构建了一些自定义路由,并希望使用 HAL 来减少服务器请求的数量。
- HAL 会这样做吗(我的前提是否正确)?
我当前的标题 Content-Type 是“application/json”。此外,在默认路由上使用 &_embed 参数时,Content-Type 仍为“application/json”。
- 这是否意味着 HAL 结构无效?
- Content-Type 是否需要为 application/json+hal 才能有所作为?
- 如有必要,如何更改 Content-Type?
本文档——HAL——超文本应用语言——声称:
HAL 具有 JSON 和 XML 变体的媒体类型,其名称分别为 application/hal+json 和 application/hal+xml。
通过 HTTP 提供 HAL 时,响应的 Content-Type 应包含相关的媒体类型名称。
我不确定如何解释这些信息。
我在哪里可以找到有关测试 HAL 是否有所作为的好信息?
spring-boot - spring-hateoas 与 `use-hal-as-default-json-media-type=false` 默认仍响应 `application/hal+json`
我想默认禁用 HAL 格式。
流文档,我设置了这个属性。
然后测试它:
1. 带标头的请求Accept: application/json
。
标题:Content-Type: application/json;charset=UTF-8
回复:
2. 请求有标头Accept: */*
或无Accept
标头。
标题:Content-Type: application/hal+json;charset=UTF-8
回复:
的版本spring-boot
是1.5.3,我用spring-boot-starter-hateoas
.
无论如何,当没有指定标头时,让hateoas 响应没有 HAL 的 json 吗?
非常感谢。
更新:
这是一个基于spring.io 指南的示例。
请求:http://localhost:8080/greeting
带有 header 的请求Accept: */*
。
带有 header 的请求Accept: application/json
。
默认情况下我不想要 HAL,所以我resources/application.properties
在项目中添加了一个配置文件。
并再次测试。
带有 header 的请求Accept: */*
。
带有 header 的请求Accept: application/json
。
json - 休息。比较两个 JSON 表示
我有一个标签系统:
标签
- ID
- 姓名
- 儿童标签
所以它们可以嵌套(最大深度 3)
例如:
- 食物
- 餐厅
- 快餐
- 中国菜
- 药物
- 医院
- 药店
- 娱乐
- 极端
- 滑雪
- 溜冰
- 家庭
- 极端
我有一些带有标签的资源。
地方
- ID
- 姓名
- 标签
而且我有几个端点:
/api/tags
和/api/place/1
因此,当标签本身被列为嵌入式资源时,我不希望标签具有嵌入式资源,但是由于不包括嵌入式子项,我最终得到了具有相同 SELF 链接的相同数据的两种不同表示形式,客户应该如何比较它们?比较 SELF 链接会起作用,但缺少一种表示children
firefox - Firefox 中的 Hal+json 查看器
Firefox JSON 查看器在类型为“application/json”时显示,但在给定“application/hal+json”时提示下载文件。这过去可以通过仅使用JSON View扩展来避免 - 但目前 Quantum 不支持。
我可以做些什么来让 Firefox 渲染 hal+json 吗?
json - Angular - 将 HAL 转换为 JSON
以下服务从 REST 服务中提取类别对象,该服务以 HAL 格式返回它们。现在我尝试将该响应转换为 JSON。为此,我搜索并尝试了不同的解决方案,例如chariotsolutions左右。有些是基于 '@angular/http' 的响应,它已被弃用,我无法正常工作。
我该如何进行转换?
作为 HAL 的响应
android - 当关系为空时,如何使用 Retrofit 2 使用 Spring Data Rest API 响应?
我正在开发 Android 应用程序,并且正在使用 Spring Rest Data 编写后端。
设想:
假设我想列出用户最喜欢的产品。我需要GET /v1/users/4/favoriteProducts
在标题中调用提供访问令牌。如果用户有最喜爱的产品,我会得到如下响应:
我可以毫无问题地反序列化它,我得到HalList
包含三个产品的对象。我的改造服务调用如下所示:
和我的HalList
班级:
但如果我没有任何最喜欢的产品,我会得到这样的东西:
当我用 Retrofit 解析这个对象时,我得到的HalList
对象content
包含一个 Product 类实例,所有值都设置为 0 或 null 或 false,具体取决于类型,这会产生问题..
我已经TypeAdapter
为 Gson 编写了这个,以便在基于 json 的空列表为空的情况下用空列表覆盖内容
但我不确定这是否是正确的解决方案,还有更优雅的解决方案吗?还有什么可以在后端完成以返回这样的空列表:
编辑:最终解决方案
我不喜欢让 Gson 的委托适配器解析响应然后检查 json 字符串并使用反射将其更改为空列表的想法。在反序列化之前,我改变了修改 json 响应的方法: