问题标签 [spring-hateoas]

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 回答
515 浏览

ember.js - Ember js 与 HATEOAS REST API 一起使用

我有一个 REST 端点"http://localhost:8080/customers",我想将它连接到我的 Ember JS 应用程序。

REST 负载

我不断收到此错误。这是我在 Ember JS 上的第二周。老实说,这比我想象的要难得多。不太容易调试或理解。

加载路线时出错:

0 投票
0 回答
318 浏览

java - HATEOAS 和搜索 API (FIQL / RQL)

我已经在 Spring 论坛上发布了这个问题,但是有人告诉我把问题移到这里,我认为这是一个不错的选择。

我想知道如何实现 FIQL 或 RQL 以在 FullREST / HateOAS 中创建搜索 API。

我对此进行了谷歌搜索,但没有看到任何内容,只是 CXF 的实现。

我知道我们可以用 Matrix Variable 做点什么?但我正在寻找更“友好”的东西,比如 CXF 实现,或者在“Spring Way”中

谢谢你的帮助

0 投票
2 回答
1324 浏览

spring-mvc - 如何使用默认拒绝的授权配置 Spring MVC (spring boot) 通过注释允许

我希望我的 Spring-HATEOAS API 应用程序(基于 Spring-Boot 和 Spring-MVC 构建)配置安全性,以便默认情况下拒绝所有端点/控制器方法,并且只能通过方法注释显式授予访问权限。

我已经能够得到它,因此注释控制所有访问,但如果开发人员忘记添加注释,则匿名用户可以访问该方法。我希望开发人员必须显式注释(或执行一些其他显式开发操作)该方法以允许匿名访问。

也许我需要编写一个自定义的 AccessDecisionManager,但我认为有理由怀疑默认情况下的拒绝行为是烘焙的......我只需要转动正确的旋钮。

我一直在徒劳地尝试这样做:

和一个控制器,如:

认为没有人有这个角色,但这只是否认每个人。

有人有魔法酱吗?

0 投票
1 回答
7962 浏览

spring - 来自 Spring Hateoas 的文档 HAL“_links”(大摇大摆)?

我有一个 REST 服务,我想为我的客户开发团队记录。

因此,我在我的资源 API 中添加了一些Linksfrom Spring-Hateoas,并插入swagger-springmvc @Api...注释以记录所有内容,并为我的 Angular 团队提供良好的 API 参考,以便能够理解我的 REST 服务。

问题是swagger无法发现哪些链接是可能的,只是给我一大堆Links而不说它们可能的值。

这是一个(简单的)示例。Swagger 检测到:

我实际上在 HAL 中得到:

我试图扩展它们LinkResourceSupport为其添加注释版本,但这导致我无处可去。

有没有一种方法/工具可以用来生成一个好的 API 文档,告诉self关系是获取内容,delete关系是删除集合?

我喜欢 swagger 的良好 UI,但如果它有助于使文档真正完整,我不介意更改我的文档工具。

我最终可以考虑将 spring-hateoas 更改为另一个链接生成器,但我不确定现在是否有更好的工具可用。

0 投票
0 回答
734 浏览

spring-hateoas - SPRING-HATEOAS + RestTemplate:使用链接实体创建资源?

如何创建与现有实体具有一对一关系的资源?以论坛用户为例。我们有两个可以相互独立存在的顶级资源:用户和问题。如果您要逐字发布您的 JSON,您将发送如下内容:

并取回位置标头:http ://example.com/api/users/1

然后

使用 RestTemplate 我很想这样做:

但是你得到的是以下错误,因为反序列化程序需要一个引用。有很多关于使用琐碎 REST 端点的文档,但在实际创建现实世界资源时却很少。


0 投票
2 回答
12432 浏览

spring-data-rest - 没有 HATEOAS 的 Spring Data Rest

我真的很喜欢 Spring Data Rest 为您编写的所有样板代码,但我宁愿只有一个“常规?” 没有所有 HATEOAS 东西的 REST 服务器。主要原因是我在客户端使用 Dojo Toolkit,并且它的所有小部件和存储都设置为返回的 json 只是一个直接的项目数组,没有所有链接和类似的东西。有谁知道如何使用 java config 进行配置,以便我获得为我编写的所有 mvc 代码,但没有所有 HATEOAS 的东西?

0 投票
1 回答
1199 浏览

spring-boot - Spring Boot 与 Spring HATEOAS Maven 冲突

似乎当我添加 spring-hateoas 的依赖项时

下面的类在类路径中不再可用

我试图排除 spring-hateoas 的各种依赖项,但 APP 不再运行。

有没有人在春季靴子中运行 spring-hateoas 运气好。

0 投票
1 回答
1623 浏览

spring - 空或空时Spring Data ReST ref链接遗漏

我一直在搜索 Oliver 的文档和 Restbucks 实现,但我似乎无法在生成的 Spring REST 存储库资源上配置链接。(我可以添加它们,但不能通过 ResourceProcessor 删除它们,因为处理器是在转换之前通过外观调用的)

我的情况很简单,那就是我希望省略指向 null 或空集合的对象上的 rel 链接(例如在图形节点父/子结构的情况下)

有人会煽动我如何实现这一目标吗?理想情况下,我希望在 Restbucks README 中提出一些建议(但我找不到它使用),其中将拾取自定义 RestResourceEntityLinks 扩展并从所述实现生成链接,因为我的情况适用于所有域对象。

但也许我还没有遇到更简单的方法?或者也许让这些链接指向一个空数组或 null 是一个有效的 hatoas ref 所以我应该让它继续前进?

提前致谢

0 投票
1 回答
205 浏览

java - 在 ResourceSupports 中包含链接实体的片段

我正在尝试构建一个统一的 REST 外观,它返回ResourceSupport代表我的域资源的 Spring HATEOAS 类,@ResponseBody用于 JSON 和 Thymeleaf 用于 HTML。我有一个Painting看起来像这样的类:

对于 的 JSON 和 HTML 渲染Painting,我需要提供艺术家信息的片段(例如,个人资料图片的名称和 URL),但是嵌入整个ArtistResource类没有意义,并且Link不允许附加任何其他元数据。

我应该创建一个嵌套Artist类来仅保存代码片段并在资源汇编器中创建所有这些,还是有更惯用的方法将代码片段网格化PaintingResource?如果我使用嵌套类,我应该只嵌入名称和 URL 值并使用单独的Link对象指向艺术家的页面吗?

0 投票
3 回答
3166 浏览

spring - 带有 Spring HATEOAS 的规范 _links

我们正在构建一个类似于 spring.io 指南“使用 REST 访问 JPA 数据”的 RESTful Web 服务。要重现下面的示例输出,只需将ManyToOne -Relation 添加到Person,如下所示:

添加一些示例数据后的 GET 请求会产生:

但是,鉴于 Paul 的父亲存储的 ID 为 2,我们想要的结果将是其关系的规范 url:

如果某些人的父亲为空,这当然会导致问题(好吧,这在这里没有多大意义......;)),但在这种情况下,我们根本不想在 JSON 中呈现链接。

我们已经尝试实现ResourceProcessor来实现这一点,但似乎在调用处理器时链接还没有填充。我们设法添加了指向所需规范 url 的附加链接,但未能修改后来添加的链接。

问题:是否有一种通用方法来自定义所有资源的链接生成?

为了阐明我们对规范 URL 的需求:我们使用 SproutCore Javascript 框架来访问 RESTful Web 服务。它使用“类似 ORM”的数据源抽象,我们已经为其实现了 Spring 生成的 JSON 输出的通用处理程序。当查询所有人时,我们需要向与其他人有 q 关系的 n 个人发送 n*(1+q) 个请求(而不仅仅是 n 个),以将它们同步到客户端数据源。这是因为默认的“非规范”链接绝对不包含有关正在设置的父亲或父亲 ID 的信息。似乎这会导致大量不必要的请求,如果初始响应首先包含更多信息,则可以轻松避免这些请求。

另一种解决方案是将父亲的 id 添加到关系中,例如: