问题标签 [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.

0 投票
1 回答
5120 浏览

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 控制器)?

0 投票
2 回答
359 浏览

security - Spring Data REST - 基于用户和角色的内容和操作

Spring Data REST 通过存储库中定义的方法公开数据和操作。这一切都很好,花花公子。然而,我们有一个用例,我们需要控制可以基于用户和角色调用的内容和操作(HTTP 方法)。关于如何解决这个问题的任何指示?

可以使用 Oauth2 为 REST API 添加安全性。

0 投票
2 回答
3644 浏览

java - 如何使用 Spring Data Rest 和 PagingAndSortingRepository 处理异常?

假设我有一个存储库,例如:

这很好用。但是,如果客户端发送一个形成的请求(例如,搜索一个不存在的字段),那么 Spring 将异常返回为 JSON。揭示@Query

抛出并发送给客户端的异常示例:

我该如何处理这些异常?通常,我将@ExceptionHandler用于我的 MVC 控制器,但我没有使用 Data Rest API 和客户端之间的层。我是不是该?

谢谢。

0 投票
3 回答
3246 浏览

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

0 投票
2 回答
1382 浏览

spring-data-rest - findBy URI 在 Spring Data Rest 中不起作用

默认情况下,在 Spring Data Rest 中,实体的 @Id 是不公开的。根据 REST 规则,我们应该使用资源的 URI 来引用它。鉴于此假设,如果您将 URI 传递给 findBy 查询,它们应该可以工作,但它们不会。

例如,假设我在老师和学生之间有一对多的关系。我想按老师找学生。

这不起作用,因为框架正在尝试将教师 URI 转换为 Long。我收到此错误消息“无法从 java.lang.String 类型转换为 java.lang.Long 类型”。

我错过了什么吗?

0 投票
2 回答
5083 浏览

java - 如何将 spring-data-rest 与 spring websocket 混合到一个实现中

我想将状态同步到对特定实体更改感兴趣的所有客户。所以我想实现类似的目标:

  • 在实体上公开 CRUD API(通过HTTP/RESTwebsockets
  • 并将(修改调用的)响应路由到websockets主题

所以从技术上讲,我会对将spring-data-restspring 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控制器(即在, , , 中)AfterCreateEventAfterSaveEventAfterLinkSaveEventAfterDeleteEvent

解决方案对我来说似乎还是很恶心,因为我需要这样做:

  1. 客户端 A --HTTP请求 --> 服务器(spring-data-rest 控制器)
  2. 服务器(spring-data-rest 控制器中的AfterXXXEvent)--websocket消息--> Springwebsocket控制器
  3. Spring websocket 控制器——websocket通过主题发送消息——>所有对主题感兴趣的客户端
  4. 服务器(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 的方法公开并且只处理我的实现。

因为我觉得我必须手动公开(通过*WebSocketControllers)CUD我所有实体的所有方法。我可能太懒了。

想法?

0 投票
1 回答
3666 浏览

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 没有公布,但它仍然有效。

0 投票
2 回答
2056 浏览

spring - JpaRepository 上的@PreAuthorize

我希望为我的 REST 服务实现基于角色的安全性。我正在使用 spring-data-rest 并已配置JpaRepository如下:

我想为@PreAuthorize继承的Page<T> findAll(Pageable pageable)方法附加一个注释,以便 GET 需要一个特定的角色。

有没有办法做到这一点?我需要提供自定义实现还是我遗漏了一些明显的东西?

0 投票
1 回答
1067 浏览

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

0 投票
1 回答
486 浏览

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!