4

デフォルトで 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"
    }
  ]
}
4

0 に答える 0