gpt4 book ai didi

java - 在 Spring 中生成一致的资源链接

转载 作者:行者123 更新时间:2023-11-30 09:02:34 26 4
gpt4 key购买 nike

使用这行代码生成链接时:

indexResource.add(linkTo(IndexController.class).withSelfRel());

生成此 JSON:

{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080"
} ]
}

但是,Spring Data Rest 生成的资源链接会生成此 JSON:

{
"_links" : {
"self" : {
"href" : "http://localhost:8080/persons{?page,size,sort}",
"templated" : true
}
}
}

特别想模仿Spring Data Rest制作的那个。我该怎么做?

我正在使用具有以下配置的 Spring Boot:

@Configuration
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
@ComponentScan
public class Application { ... }

保留或删除 @EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL) 似乎没有任何改变。

我还有以下 gradle 依赖项:

compile "org.springframework.boot:spring-boot-starter-data-rest"
compile "org.springframework.boot:spring-boot-starter-data-jpa"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-starter-jetty"
compile "org.springframework.data:spring-data-envers:0.2.0.RELEASE"
compile "org.hibernate:hibernate-envers:4.3.6.Final"
runtime "mysql:mysql-connector-java:5.1.32"
testCompile "junit:junit"

最佳答案

Spring Data Rest 使用 HAL 格式。它应该是较新版本的 Spring HATEOAS 的默认值。您可以使用配置类上的注释来激活它:

@EnableHypermediaSupport(type= {HypermediaType.HAL})

更新

我在使用 Spring Boot 时遇到了类似的情况。我必须将以下内容添加到我的 pom.xml:

<dependency>
<groupId>org.springframework.plugin</groupId>
<artifactId>spring-plugin-core</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>

关于java - 在 Spring 中生成一致的资源链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com