最近、スプリング ブート アプリケーション (私の場合は Web アプリではありません) で偽のクライアントを操作しているときに、クライアントがオブジェクトを正しく逆シリアル化できないことがわかりました。同僚が私に指摘したように-HALモジュールの登録が、ヘイトの春の自動構成で@ConditionalOnWebApplicationによって条件付きで保護されていることが原因であることが判明しました
これを知ることで、これを克服するために導入できる解決策があります
- 登録された HAL モジュールを持つ ObjectMapper を含む偽のクライアントにデコーダーを追加できます (小さなコードですが、まだ余分な作業があります)。
- Web アプリケーションに変換する - これはまったく良い解決策ではなく、すぐに使えるようにするという要点で行うべきではないと感じています。
それで、これを知っている人はこれに遭遇しましたか?JPa rest リソースの偽のクライアントを持つことは有効なシナリオだと思います。
以下は、Paged であるサーバー応答の例です。以下の応答のメタデータ コンテンツが受信されたことに注意してください (結果は 1 つです) が、ページ化されたリソースのコンテンツを読み込もうとしたときに修正がないと、null/空であることが判明します
{
"_embedded": {
"emails": [{
"id": "1a5edced-c165-4209-9d1c-9549b6841d13",
"tenantId": "a56982a6-6e12-4fe6-95d1-b735cedda2dc",
"email": "whatever@whatever.com",
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c- 9549b6841d13"
},
"email": {
"href": "http://10.190.224.138:8086/emails/1a5edced-c165-4209-9d1c-9549b6841d13"
}
}
}]
},
"_links": {
"self": {
"href": "http://10.190.224.138:8086/emails/search/whatssss?email=whatever%40whatever.com"
}
},
"page": {
"size": 20,
"totalElements": 1,
"totalPages": 1,
"number": 0
}
}