问题标签 [spring-data-rest]
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-data-rest 发布的自定义 jpa 存储库方法
我已经在http://docs.spring.io/spring-data/data-jpa/docs/1.0.x/reference/html/#repositories.custom-implementations中详细说明了一个自定义方法到 jpa 存储库
据我所知,当我使用 spring-data-rest 时,这个方法没有暴露出来。有什么方法可以将它作为 spring-data-rest 生成的 REST API 的一部分发布(无需自己创建 Spring MVC 控制器)?
security - Spring Data REST - 基于用户和角色的内容和操作
Spring Data REST 通过存储库中定义的方法公开数据和操作。这一切都很好,花花公子。然而,我们有一个用例,我们需要控制可以基于用户和角色调用的内容和操作(HTTP 方法)。关于如何解决这个问题的任何指示?
可以使用 Oauth2 为 REST API 添加安全性。
java - 如何使用 Spring Data Rest 和 PagingAndSortingRepository 处理异常?
假设我有一个存储库,例如:
这很好用。但是,如果客户端发送一个形成的请求(例如,搜索一个不存在的字段),那么 Spring 将异常返回为 JSON。揭示@Query
等
抛出并发送给客户端的异常示例:
我该如何处理这些异常?通常,我将@ExceptionHandler
用于我的 MVC 控制器,但我没有使用 Data Rest API 和客户端之间的层。我是不是该?
谢谢。
spring-data-rest - Spring Data Rest:如何从存储库中公开 json 模式 (2.0.0.M1)
我在源代码中看到 Spring DATA Rest 可以为具有此 URL 的存储库公开 Json Schema:/{repository}/schema。
有没有人知道如何配置这个?
有 RepositorySchemaController (org.springframework.data.rest.webmvc) 但我还没有找到如何使用它。
版本:2.0.0.M1
spring-data-rest - findBy URI 在 Spring Data Rest 中不起作用
默认情况下,在 Spring Data Rest 中,实体的 @Id 是不公开的。根据 REST 规则,我们应该使用资源的 URI 来引用它。鉴于此假设,如果您将 URI 传递给 findBy 查询,它们应该可以工作,但它们不会。
例如,假设我在老师和学生之间有一对多的关系。我想按老师找学生。
这不起作用,因为框架正在尝试将教师 URI 转换为 Long。我收到此错误消息“无法从 java.lang.String 类型转换为 java.lang.Long 类型”。
我错过了什么吗?
java - 如何将 spring-data-rest 与 spring websocket 混合到一个实现中
我想将状态同步到对特定实体更改感兴趣的所有客户。所以我想实现类似的目标:
- 在实体上公开 CRUD API(通过
HTTP/REST
和websockets
) - 并将(修改调用的)响应路由到
websockets
主题
所以从技术上讲,我会对将spring-data-rest与spring websockets 实现混合以实现类似 spring-data-websocket 的想法感兴趣。
我想到了两种解决方案,实际上两者都是:
- spring-data-rest 通过暴露我的实体
REST/HTTP API
websocket
控制器(用于实体的修改调用)
websocket
控制器看起来像这样:
场景一:Websocket API
调用自REST/HTTP API
规则:
- 客户请求总是
REST/HTTP API
- 响应
REST/HTTP API
适用于所有操作 - 此外,对于修改操作,
websocket
消息也会出现
从技术上讲,可以通过以下方式实现:
- 从spring-rest-data 事件中调用
websocket
控制器(即在, , , 中)AfterCreateEvent
AfterSaveEvent
AfterLinkSaveEvent
AfterDeleteEvent
解决方案对我来说似乎还是很恶心,因为我需要这样做:
- 客户端 A --
HTTP
请求 --> 服务器(spring-data-rest 控制器) - 服务器(spring-data-rest 控制器中的AfterXXXEvent)--
websocket
消息--> Springwebsocket
控制器 - Spring websocket 控制器——
websocket
通过主题发送消息——>所有对主题感兴趣的客户端 - 服务器(spring-data-rest 控制器)--
HTTP
响应--> 客户端 A
场景2:Websocket API
独立于REST API
规则:
- 客户端请求仅
REST/HTTP API
用于非修改操作 - 响应仅
REST/HTTP API
用于非修改操作 websocket
客户端为所有修改操作发送消息websocket
仅针对所有修改操作向客户端发送消息
好吧,如果没有其他想法出现,我会选择后一个,但是,如果我也能以某种方式生成C(R)UD
通过websockets
类似 spring-data-websockets 的方法公开并且只处理我的实现。
因为我觉得我必须手动公开(通过*WebSocketController
s)CUD
我所有实体的所有方法。我可能太懒了。
想法?
spring - Spring Data Rest 可分页子集合
我有一个名为 User 的 @Entity。它有一组变更集,如下所示:
我有一个用户存储库:
和一个变更集存储库:
调用 GEThttp://localhost:8080/changesets/
或http://localhost:8080/users/
产生分页响应。
如果我调用 GET ,http://localhost:8080/users/1/changesets
那么我会在一个数组中获得所有结果,并且不会发生分页。
有没有办法向 Spring Data Rest 表明我想在通过其父用户访问时以可分页的方式返回变更集集合?变更集集将快速增长,我宁愿不在单个页面中返回大量结果。
编辑:
正如 Willie Wheeler 所建议的,我将其添加到我的 ChangesetRepository 以使其可搜索:
我离开了双向关系,但也能够通过在变更集上使用来@RestResource(exported=false)
向用户隐藏指向变更集的链接。
旁注:似乎将关系设置为exported=false 隐藏了链接,但实际上并没有删除映射。/users/1/changesets 没有公布,但它仍然有效。
spring - JpaRepository 上的@PreAuthorize
我希望为我的 REST 服务实现基于角色的安全性。我正在使用 spring-data-rest 并已配置JpaRepository
如下:
我想为@PreAuthorize
继承的Page<T> findAll(Pageable pageable)
方法附加一个注释,以便 GET 需要一个特定的角色。
有没有办法做到这一点?我需要提供自定义实现还是我遗漏了一些明显的东西?
spring - Spring Data Rest 和 Hateoas
我正在按照一个简单的教程来测试 Spring Data Rest 的行为,并使用 @RestResource 注释对存储库进行注释。我有一个非常简单的场景:Jpa User Entity and UserRepository annotated with @RestResource
我使用注释配置初始化并尝试注册 RepositoryRestMvcConfiguration,因此可以注册 UserRepository。但我的应用程序没有启动,我有以下异常
我使用 spring-hateoas: 0.8.0.RELEASE spring-data-rest-webmv: 2.0.0.RC1 spring-framework: 4.0.0.RELEASE spring-data-jpa:1.4.3
spring-data - 如何让 Spring Data REST 2.0 RC1 工作?
我让 Spring Data REST 1.1.0.M1 正常工作,但想尝试 2.0 版。
这是我的POM:
当我尝试 SDR 2.0.0.R1 时,我得到了ClassNotFoundException: org.springframework.data.web.config.HateoasAwareSpringDataWebConfiguration
,当我尝试 HATEOAS 0.9 时,我得到了IllegalArgumentException: Content must not be a collection! Use Resources instead!