今回はとても混乱してしまいました... 私は春の起動(1.5.3)アプリケーションを開発中で、 hateoasライブラリ。いくつかのエンドポイントは既に正しく動作し、HALリンクを返す。現在、私はHALで応答を返すように別のエンドポイントを変更しようとしていますが、結果は"collection+json"
スタイルでシリアル化されています。 春のコンテキストで3件のObjectMapper
インスタンスがあります:HALスタイルのレンダリングで春の嫌いが発生する
objectMapper
_halObjectMapper
halObjectMapper
は、私はすべての3と応答を変換し、私がこれまでに見つかった何
これらは、最初の2つは、"collection+json"
出力("links"
と"rel"
)、3番目のものは期待されるHALスタイル("_links"
なし、"rel"
なし)を生成します。
なぜ3つありますか、どのようにこれらのobjectMappersがレスポンスのレンダリングに使用されるかを調べて制御するにはどうすればよいですか?私の他のエンドポイントがどのようにして予期したフォーマットを返すことが可能ですか?
ここに私の単純化されたコードは、それが任意の関心のだ場合には、です:応答は次のように見えるようになっている
@RestController
public class SearchController{
@RequestMapping(value = "/search", produces = { "application/hal+json" }, method = RequestMethod.GET)
public ResponseEntity<SearchResponse> search(...){
SearchResponse searchResponse = ...; // search & build response
return new ResponseEntity<>(searchResponse, HttpStatus.OK);
}
}
public class SearchResponse {
@JsonProperty("_meta")
private PageSortInfo meta;
@JsonUnwrapped
private Resources<Resource<SearchResultItem>> resultlist;
...// getters & setters
}
:
{
"_meta" : {
...
},
"_embedded" : {
"searchResultItemList" : [ {
...,
"_links" : {
"self" : {
"href" : "..."
}
}
},
...
]
},
"_links" : {
"self" : {
"href" : "http://localhost:8882/api/search"
}
}
}