问题标签 [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.
spring - 将 Spring HATEOAS 链接转换为对象的正确方法
我有一个非常简单的控制器,它发出 HTTP 请求并以 HATEOAS 格式接收一些资源。
是否存在将链接转换为对象的现有首选或标准方法?
有关 EmployeeDTO 的详细信息,请参见此处:https ://gist.github.com/Xerosigma/64469a30355f5de0228a
spring - Spring HATEOAS Resource assembler 未在单元测试中实例化
我正在尝试为 REST 控制器编写一个单元测试,该控制器通过 Resource assembler 类生成 HATEOAS 链接。生产中一切正常,但是单元测试资源汇编程序类没有被注入控制器。
我的资源汇编类是:
控制器是:
和单元测试:
无论我做什么,ModelResourceAssembler 实例始终为空。由于应用程序是 Spring Boot,它没有 WebCoonfig 类,并且自动装配的 WebApplicationContext 始终为空,所以我不能(并且真的不想,因为我正在运行单元测试)通过 webAppContextSetup 实例化 MockMvc
java - Spring HATEOAS 嵌入式资源支持
我想为我的 REST API 使用 HAL 格式来包含嵌入式资源。我将 Spring HATEOAS 用于我的 API,而 Spring HATEOAS 似乎支持嵌入式资源;但是,没有关于如何使用它的文档或示例。
有人可以提供一个示例如何使用 Spring HATEOAS 来包含嵌入式资源吗?
java - 在 Spring 中生成一致的资源链接
使用这行代码生成链接时:
生成此 JSON:
但是,Spring Data Rest 生成的资源链接会生成以下 JSON:
特别是,我想模仿 Spring Data Rest 制作的那个。我该怎么做?
我正在使用具有以下配置的 Spring Boot:
保留或删除@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
似乎并没有改变任何东西。
我还有以下 gradle 依赖项:
spring - Spring Data REST 自定义查询集成
我想为一个Employee
基本上是findByAllFields
查询的实体创建一个 REST 链接。当然,这应该与Page
and结合使用Sort
。为此,我实现了以下代码:
所以我想让我们说一个我可以做的查询:
所以我有以下Repository
好的,现在我需要一个 RestController
好的,显然这可以完成它的工作,但它没有与 HATEOAS 集成。我试图组装一个资源,将控制器更改为:
显然我从上面遗漏了一些东西,因为它不起作用并且我得到以下异常:
好的,为了让问题更清楚,我正在尝试将上述资源集成到 HATEOAS 架构的其余部分中。我不完全确定这是否是正确的方法,所以欢迎任何其他建议。
编辑:在这里你可以看到一个类似的实现。请看一下配置,你会看到除了一个“Person”控制器之外的所有控制器都在工作。 https://github.com/cgeo7/spring-rest-example
java - Spring Data Rest - PagedResourceAssembler 异常
我有以下配置文件:
还有我的 Rest 配置类
这是我的控制器
最后我正在使用的库:
通过公开 aRepositoryRestMvcConfiguration
我应该配置所有内容。但是,在尝试访问资源时出现以下异常:
我已经尝试过我的Transmission
实体扩展ResourceSupport
和不扩展,但它似乎没有任何区别。
任何想法我做错了什么?
spring - Spring Data REST资源如何全局自定义集合资源rel和path?
基于示例项目 https://github.com/jcoig/gs-accessing-data-rest 中的https://spring.io/guides/gs/accessing-data-rest/ )我的存储库定义如下:
此类定义的存储库可通过http://localhost:8080/persons
以下方式获得,响应为:
我不想persons
在 URL中有,也不想persons
在返回的 JSON 中作为键。当然,我可以如下定义我的存储库:
但我的问题是如何更改默认 Spring 的行为并获得自定义键和自定义路径提供程序(就像禁用s
后缀的示例)。
java - Spring RestTemplate:GET 请求导致 400 Bad Request
我正在尝试为以下 URL 创建客户端:http: //florist.herokuapp.com/products/1/categories
应用程序.java
分类列表.java
类别.java
抛出的错误是:
要在服务器上生成 JSON,我使用 RepositoryRestResource 注释:
和
spring - 如何控制 Spring Hateoas 生成链接的 web 上下文?
我们正在构建一个 API 并使用Spring RestController
s 和Spring HATEOAS
.
当 war 文件被部署到一个容器并且一个 GET 请求被发送到http://localhost:8080/placesapi-packaged-war-1.0.0-SNAPSHOT/places
时,HATEOAS 链接看起来像这样:
因为 Web 上下文是已部署应用程序的上下文(例如placesapi-packaged-war-1.0.0-SNAPSHOT
:)
在真实的运行时环境(UAT 及更高版本)中,容器很可能位于 http 服务器后面,例如Apache
虚拟主机或类似服务器位于 Web 应用程序前面的位置。像这样的东西:
使用上述方法,当我们向 发出 GET 请求时http://nathans-macbook-pro.local/places
,结果响应如下所示:
这是错误的,因为响应中的链接包含 Web 应用程序上下文,并且如果客户端要遵循该链接,他们将得到 404
有谁知道如何控制Spring HATEOAS
这方面的行为?基本上我需要能够控制它在链接中生成的网络上下文名称。
我做了一些探索,可以看到使用自定义标头X-Forwarded-Host
可以控制主机和端口,但我看不到任何类似的东西能够控制上下文。
我们考虑的其他选项包括将应用程序部署到 ROOT 上下文或固定命名上下文,然后相应地设置我们的虚拟主机。然而,这些感觉像是妥协而不是解决方案,因为理想情况下我们希望在同一个容器上托管多个版本的应用程序(例如:placesapi-packaged-war-1.0.0-RELEASE、placesapi-packaged-war-1.0.1- RELEASE、placesapi-packaged-war-2.0.0-RELEASE 等)并让虚拟主机根据 http 请求标头转发到正确的应用程序。
对此的任何想法将不胜感激,
干杯
弥敦道
java - Spring HATEOAS,在 WS 响应中嵌入链接对象
我正在使用 Spring Boot 和 Spring HATEOAS 构建 REST API。
我有 2 个简单的对象。比方说:
这个简单的项目创建如下输出:
很好,但我希望应用程序直接在响应中发送地址对象。为了不必查询地址的URL。
就像是:
是否有任何配置可以做到这一点?我在 Spring HATEOAS 文档中找不到任何关于它的配置。这是仅使用常规 Spring 控制器时的默认行为。