为什么我通过向根 URL 发出请求来获得 HAL 浏览器的引用而不是 JSON+HAL 响应?

Why do I get a referer to the HAL Browser instead of a JSON+HAL response by issuing a request to the root URL?

我正在使用 Spring Boot 1.4.0.RELEASE 和 spring-data-rest-hal-browser,spring-boot-starter-hateoas,spring-boot-starter-data-rest 和其他几个依赖项。

当我打电话给

curl -H "Authorization: Basic YWRtaW46YWRtaW4xMjM=" -G http://localhost:8080/api/v1 -v

在我的控制台上,我收到以下响应:

* Adding handle: conn: 0x66a9e0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x66a9e0) send_pipe: 1, recv_pipe: 0
* About to connect() to localhost port 8080 (#0)
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /api/v1 HTTP/1.1
> User-Agent: curl/7.33.0
> Host: localhost:8080
> Accept: */*
> Authorization: Basic YWRtaW46YWRtaW4xMjM=
>
< HTTP/1.1 302
< Set-Cookie: JSESSIONID=3DC642CBC288E944471DF289B11FBED4;path=/;HttpOnly
< X-Application-Context: application:dev
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate
< Pragma: no-cache
< Expires: 0
< Location: http://localhost:8080/api/v1/browser/index.html#/api/v1
< Content-Language: de-DE
< Content-Length: 0
< Date: Wed, 17 Aug 2016 06:11:47 GMT

但我期望得到一个包含所有已发现资源的 json 对象。至少一个,因为我目前有一个存储库:

@RepositoryRestResource(path = "billing-services", collectionResourceRel = "billing-services", collectionResourceDescription = @Description("Mandantendaten"))
    public interface BillingServiceRepository extends CrudRepository<BillingService, Long> {
}

有什么提示吗?

谢谢, 克里斯蒂安

Spring Boot 1.4.0 使用的 Spring Data REST 版本中有 a bug。它已在最新的 Spring 数据 REST 和 Spring 启动快照中修复。

您可以尝试使用 Spring Boot 1.4.1.BUILD-SNAPSHOT 或使用 Spring Boot 1.4.0.RELEASE 并覆盖 spring-data-releasetrain.version 属性 得到值 Hopper-BUILD-SNAPSHOT。在这两种情况下,快照都可以从 https://repo.spring.io/libs-snapshot.

获得