我想默认禁用 HAL 格式。
流文档,我设置了这个属性。
spring.hateoas.use-hal-as-default-json-media-type=false
然后测试它:
1. 带标头的请求Accept: application/json
。
标题:Content-Type: application/json;charset=UTF-8
回复:
{
"links": {}
}
2. 请求有标头Accept: */*
或无Accept
标头。
标题:Content-Type: application/hal+json;charset=UTF-8
回复:
{
"_embedded": {},
"_links": {}
}
的版本spring-boot
是1.5.3,我用spring-boot-starter-hateoas
.
无论如何,当没有指定标头时,让hateoas 响应没有 HAL 的 json 吗?
非常感谢。
更新:
这是一个基于spring.io 指南的示例。
请求:http://localhost:8080/greeting
带有 header 的请求Accept: */*
。
HTTP/1.1 200
Content-Type: application/hal+json;charset=UTF-8
{
"content":"Hello, World!",
"_links":{
"self":{
"href":"http://localhost:8080/greeting?name=World"
}
}
}
带有 header 的请求Accept: application/json
。
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"content":"Hello, World!",
"_links":{
"self":{
"href":"http://localhost:8080/greeting?name=World"
}
}
}
默认情况下我不想要 HAL,所以我resources/application.properties
在项目中添加了一个配置文件。
spring.hateoas.use-hal-as-default-json-media-type=false
并再次测试。
带有 header 的请求Accept: */*
。
HTTP/1.1 200
Content-Type: application/hal+json;charset=UTF-8
{
"content":"Hello, World!",
"_links":{
"self":{
"href":"http://localhost:8080/greeting?name=World"
}
}
}
带有 header 的请求Accept: application/json
。
HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
{
"content":"Hello, World!",
"links":[
{
"rel":"self",
"href":"http://localhost:8080/greeting?name=World"
}
]
}