问题标签 [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.
java - Spring HATEOAS ControllerLinkBuilder 删除斜杠?
我正在尝试将 Spring HATEOAS 合并到现有的服务工具和 REST API 中。但是,我遇到的问题之一是 ControllerLinkBuilder 似乎删除了尾部斜杠(由于现有约束,这是一个要求)。是否有一些解决方法或方法可以将该尾部斜杠添加到链接中?
(用户扩展 ResourceSupport)
我也试过 .slash("") 无济于事。
输出:
spring-security - HTTP 方法安全性
我正在使用 Spring Boot 构建一个简单的 HATEOAS REST 服务。
我有一个 MongoDB 存储库和资源,我想在其中允许 GET,但不允许其他所有内容。(发布、更新删除等)
一般的想法是允许“用户”按照自己的意愿使用资源并允许“公共”只读访问。
我不觉得我以正确的角度接近这个。这样做的首选方法是什么?
java - 如何配置spring-hateoas注册的MappingJackson2HttpMessageConverter
我喜欢在我的项目中使用 spring-hateoas 并将其配置为@EnableHypermediaSupport
. 现在的问题是,这个神奇的配置注释注册了它自己的MappingJackson2HttpMessageConverter
,我自己的自定义转换器将被忽略。
背景:我在我的项目中添加了一些 Jackson 模块(如JodaModule
),我希望它们使用objectMapper.findAndRegisterModules();
. 这是通过覆盖or来完成configureMessageConverters(List<HttpMessageConverter<?>> converters)
的。WebMvcConfigurationSupport
WebMvcConfigurer
我当前的配置如下所示:
有没有办法自定义spring-hateoas 使用的 or MappingJackson2HttpMessageConverter
?ObjectMapper
mongodb - 针对 PATCH 请求进行数组更新的 $addToSet 实现
在 PATCH 请求期间更新数组值时,有没有办法告诉 MongoRepository 实现 $addToSet?
我正在使用带有 HATEOAS 和 Mongodb 的 Spring data rest,当前实现用新数组替换旧数组,其中所需的功能是执行两个数组的联合并将该数组存储在 Mongodb 文档中。
虽然应该可以通过自定义实现来做到这一点,但 Spring 不会为实现生成 rest url,因此需要大量样板文件来满足相当小的需求。所有回应表示赞赏。
spring - 带有 ControllerLinkBuilder 的模板变量
我希望我的回复包括以下内容:
这很容易实现:
但是,当然,我宁愿使用 ControllerLinkBuilder,如下所示:
问题是,当变量“{keyMapId}”到达 UriTemplate 构造函数时,它已包含在编码 URL 中:
因此 UriTemplate 的构造函数不会将其识别为包含变量。
如何说服 ControllerLinkBuilder 我想使用模板变量?
rest - 当链接实体为空时,Spring HATEOAS 设置 href null
我正在设计一个 REST api,并尽可能地保持安静,我想在 json 响应中实现 HATEOAS。
如果数据库中不存在链接的实体,例如每个用户都有一个护照实体,但如果有人没有,那么我想发送一组 rel 和 href 链接,如下所示:
有什么方法可以使用 Spring HATEOAS 或手动实现这一点,我必须检查 null 然后将 href 设置为 null。
spring-boot - 未找到 HATEOAS 方法
我的控制器似乎找不到像“linkTo”这样的 HATEOAS 方法。
我错过了什么吗?
pom.xml
控制器
java - 使用 ResourceAssemblerSupport 构建的资源列表的 Spring hatoas xml 序列化
我正在尝试为基于 Spring HATEOAS 的应用程序支持 XML 响应。JSON 响应和 XML 一样适用于单个资源。问题从资源列表开始。Spring MVC 控制器无法序列化借助 ResourceAssemblerSupport 派生类构建的列表。控制器为 curl 命令抛出“org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示”
我的 HATEOAS 资源是实体类的包装器:
控制器很简单:
资源汇编类:
当我避免 ResourceAssemblerSupport 并像这样手动构建我的资源时:
XML 序列化有效。我想我可以避免使用资源汇编器并手动构建我的资源,但这会使代码不那么干净和模块化。我想知道是否仍然可以使用 ResourceAssemblerSupport 作为资源构建器并将资源列表作为 XML 返回
rest - 公开分页搜索链接及其参数
我正在使用最新的 Spring REST 和 HATEOAS 试图公开指向搜索端点的链接。
这是资源汇编器:
这是端点控制器:
首先,我不确定是否应该调用 buildPageRequest 方法并简单地将原始 pageable 传递给搜索服务。
我遇到的问题有两个:
响应中发布的链接缺少 searchTerm 参数:
我希望它是这样的:
但同样,作为一个新手,我不确定。
控制器总是获取 10 个项目的第一页,忽略我在请求中提供的页码和大小参数:
我想我离解决方案不远了,但我什至不知道暴露的链接应该是什么样子。
任何方向都会非常好:-)
编辑:添加信息
可分页配置:
该服务只是对存储库的简单包装:
这是一个接口:
页面搜索(@Param("searchTerm") String searchTerm, Pageable page);
数据库是 JPA 前端的 H2,控制台显示:
可以看到偏移量丢失了...
亲切的问候,
斯蒂芬·艾伯特
java - 意外返回 json,在 Spring hateoas 中,“链接”拼写为“_links”且结构不同
正如标题所说,我有一个资源对象Product
扩展ResourceSupport
. 但是,我收到的回复具有属性“_links”而不是“链接”,并且具有不同的结构。
根据HATEOAS Reference,预期为:
这是故意的吗?有没有办法改变它,或者如果不是结构,至少是“链接”?
我通过以下代码段添加了 selfLink:
我正在使用带有以下构建文件的spring boot: