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

时间:2016-08-17 06:21:40

标签: spring spring-boot spring-data-rest

我正在使用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> {
}

任何提示?

谢谢你, 基督教

1 个答案:

答案 0 :(得分:2)

Spring Boot 1.4.0使用的Spring Data REST版本中有a bug。它已经在最新的Spring Data REST和Spring Boot快照中得到修复。

您可以使用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获得。