gpt4 book ai didi

java - Spring Data REST - HAL 浏览器 - 返回 HAL 浏览器 HTML 而不是 API 的根

转载 作者:行者123 更新时间:2023-12-04 16:47:12 29 4
gpt4 key购买 nike

我正在研究 Spring Data REST,特别是 HAL 浏览器。我一直在关注 http://docs.spring.io/spring-data/rest/docs/current/reference/html/#_the_hal_browser 上的文档.

当我导航到 http://localhost:8080 时,它会将我重定向(如预期的那样)到 http://localhost:8080/browser/index.html#/,并显示 HAL 浏览器。我的问题是,这个页面没有显示有关我的 API 根目录的详细信息,而是试图显示自己。例如,Response Body 部分包含 HAL 浏览器的 HTML,而不是来 self 的 API 的 JSON

Screenshot of Response body

我不确定我是否在我的设置中做错了什么 - 它非常普通(下面列出了完整的源代码),所以非常感谢任何正确方向的指示!

为了完整性 - 如果我在 Explorer 文本字段中输入 /users 并选择 Go!,那么我会按预期看到我的 API 的详细信息。此外,如果我删除 HAL 浏览器依赖项并浏览到 http://localhost:8080,那么我会按预期看到我的 API 的根目录。

Screenshot of response when not using HAL browser

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>sample</groupId>
<artifactId>restsample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>My application</name>
<description>My application description</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

Application.java

@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

用户.java

@Data
@Entity
public class User {
@Id
@GeneratedValue
private Long id;

@NotBlank
@Size(min = 1, max = 100)
@Column(unique = true)
private String username;
}

UserRepository.java

@RepositoryRestResource
public interface UserRepository extends CrudRepository<User, Long> {
User save(User user);
}

最佳答案

尝试改变依赖

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-explorer</artifactId>
</dependency>

然后转到:http://localhost:8080

关于java - Spring Data REST - HAL 浏览器 - 返回 HAL 浏览器 HTML 而不是 API 的根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39053663/

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