デフォルトで HAL 形式を無効にしたい。
ドキュメントを流し、このプロパティを設定します。
spring.hateoas.use-hal-as-default-json-media-type=false
次にテストします。
1.ヘッダー付きのリクエストAccept: application/json
。
ヘッダ:Content-Type: application/json;charset=UTF-8
応答:
{
"links": {}
}
Accept: */*
2. ヘッダー付きまたはヘッダーなしのリクエストAccept
。
ヘッダ:Content-Type: application/hal+json;charset=UTF-8
応答:
{
"_embedded": {},
"_links": {}
}
のバージョンspring-boot
は 1.5.3 で、私は を使用していますspring-boot-starter-hateoas
。
とにかく、ヘッダーが指定されていない場合、HAL なしで JSON を応答することはできますか?
どうもありがとう。
アップデート:
spring.io のガイドに基づく例を次に示します。
リクエスト先:http://localhost:8080/greeting
ヘッダー付きのリクエスト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"
}
}
}
ヘッダー付きのリクエスト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
そして、もう一度テストします。
ヘッダー付きのリクエスト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"
}
}
}
ヘッダー付きのリクエスト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"
}
]
}