在没有 spring-data-rest 的情况下将 HAL 浏览器与 spring-hateoas 一起使用
Using HAL-browser with spring-hateoas WITHOUT spring-data-rest
我们正在开始一个新项目,我们正在研究使用 spring-hateoas / 超媒体。 HAL 浏览器看起来也很有趣,所以我们想看看。
但是,HAL 浏览器似乎捆绑到 spring-data-rest,我们不想使用它(出于不同的原因)。
至少我们不想将所有存储库自动公开为 rest-resources,但是在这样做时,除了定义链接之外,我们还需要明确定义 HAL 浏览器的链接
spring-讨厌的人。
当不自动公开存储库时,我们必须定义
implements ResourceProcessor<RepositoryLinksResource>
和
@Override
RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(link('/{id}').withRel('my-dummy'))
return resource
}
除了已经定义的链接(使用 hateoas)
link('/{id}').expand(entity.id).withSelfRel()
这看起来很麻烦,也不符合DRY原则。
我们宁愿不实现 @Override 方法 RepositoryLinksResource process(RepositoryLinksResource resource) 因为这些链接已经在别处定义了。
我最初的想法是 HAL 浏览器会重新使用已经用 hateoas 定义的链接。
但是貌似我没有理解正确?
所以问题是
有没有办法在不使用 spring-data-rest 的情况下使用 spring-bundled HAL 浏览器?
并且在不自动公开存储库时无需手动为 HAL 浏览器显式定义链接?
Spring提供的HAL浏览器没有spring-data-rest无法使用
我有类似的需求并考虑了以下选项...
- 将 Spring HAL 浏览器打包到一个单独的项目中(托管在不同的端口上)并使用 @CrossOrigin 标记您的原始项目。
- 打包通用 HAL 浏览器。
我没有尝试第一种方法,所以不知道您是否会遇到任何其他问题。
第二种方法是通过下载 HAL 浏览器 (https://github.com/mikekelly/hal-browser) and adding it to the Spring Boot project folder src/resources/public (https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot)。
我们正在开始一个新项目,我们正在研究使用 spring-hateoas / 超媒体。 HAL 浏览器看起来也很有趣,所以我们想看看。
但是,HAL 浏览器似乎捆绑到 spring-data-rest,我们不想使用它(出于不同的原因)。
至少我们不想将所有存储库自动公开为 rest-resources,但是在这样做时,除了定义链接之外,我们还需要明确定义 HAL 浏览器的链接 spring-讨厌的人。
当不自动公开存储库时,我们必须定义
implements ResourceProcessor<RepositoryLinksResource>
和
@Override
RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(link('/{id}').withRel('my-dummy'))
return resource
}
除了已经定义的链接(使用 hateoas)
link('/{id}').expand(entity.id).withSelfRel()
这看起来很麻烦,也不符合DRY原则。 我们宁愿不实现 @Override 方法 RepositoryLinksResource process(RepositoryLinksResource resource) 因为这些链接已经在别处定义了。
我最初的想法是 HAL 浏览器会重新使用已经用 hateoas 定义的链接。 但是貌似我没有理解正确?
所以问题是
有没有办法在不使用 spring-data-rest 的情况下使用 spring-bundled HAL 浏览器?
并且在不自动公开存储库时无需手动为 HAL 浏览器显式定义链接?
Spring提供的HAL浏览器没有spring-data-rest无法使用
我有类似的需求并考虑了以下选项...
- 将 Spring HAL 浏览器打包到一个单独的项目中(托管在不同的端口上)并使用 @CrossOrigin 标记您的原始项目。
- 打包通用 HAL 浏览器。
我没有尝试第一种方法,所以不知道您是否会遇到任何其他问题。
第二种方法是通过下载 HAL 浏览器 (https://github.com/mikekelly/hal-browser) and adding it to the Spring Boot project folder src/resources/public (https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot)。