問題タブ [spring-hateoas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring HATEOAS ControllerLinkBuilder は末尾のスラッシュを削除しますか?
Spring HATEOASを既存のサービスツールやREST APIに取り込もうとしています。ただし、私が遭遇している問題の 1 つは、ControllerLinkBuilder が末尾のスラッシュを削除しているように見えることです (これは、既存の制約による要件です)。末尾のスラッシュをリンクに追加するための回避策または方法はありますか?
(ユーザーは ResourceSupport を拡張します)
私も .slash("") を試してみましたが、役に立ちませんでした。
出力:
java - spring-hateoas で登録した MappingJackson2HttpMessageConverter の設定方法
私は自分のプロジェクトで spring-hateoas を使用するのが好きで、それを で構成しました@EnableHypermediaSupport
。問題は、この魔法の構成アノテーションが独自に登録しMappingJackson2HttpMessageConverter
、独自のカスタマイズされたコンバーターが無視されることです。
背景: いくつかの Jackson モジュール ( などJodaModule
) をプロジェクトに追加しましobjectMapper.findAndRegisterModules();
た。これは、またはでオーバーライドconfigureMessageConverters(List<HttpMessageConverter<?>> converters)
するWebMvcConfigurationSupport
ことによって行われますWebMvcConfigurer
。
私の現在の構成は次のようになります。
spring-hateoas で使用されるMappingJackson2HttpMessageConverter
またはをカスタマイズする方法はありますか?ObjectMapper
spring - ControllerLinkBuilder を使用したテンプレート変数
私はこれを含めて私の応答をしたい:
それを達成するのは簡単です:
しかし、もちろん、次のように ControllerLinkBuilder を使用したいと思います。
問題は、変数 "{keyMapId}" が UriTemplate コンストラクターに到達するまでに、エンコードされた URL に含まれていることです。
したがって、UriTemplate のコンストラクターは、変数が含まれていると認識しません。
テンプレート変数を使用したいことを ControllerLinkBuilder に納得させるにはどうすればよいですか?
java - ResourceAssemblerSupport で構築されたリソースのリストの Spring ヘイトアズ xml シリアライゼーション
Spring HATEOAS ベースのアプリケーションで XML 応答をサポートしようとしています。JSON 応答は、単一のリソースの XML と同様に正常に機能します。問題はリソースのリストから始まります。Spring MVC コントローラーは、ResourceAssemblerSupport 派生クラスを使用して構築されたリストをシリアル化できません。コントローラーは、curl コマンドに対して「org.springframework.web.HttpMediaTypeNotAcceptableException: 受け入れ可能な表現が見つかりませんでした」をスローします。
私の HATEOAS リソースはエンティティ クラスのラッパーです。
コントローラーは単純です。
リソース アセンブラ クラス:
ResourceAssemblerSupport を回避し、次のようにリソースを手動でビルドすると:
XML シリアライゼーションが機能します。リソース アセンブラーを使用せずに手動でリソースをビルドすることもできると思いますが、それではコードがクリーンでモジュール化されなくなります。ResourceAssemblerSupport をリソース ビルダーとして使用し、リソースのリストを XML として返すことはまだ可能でしょうか?
rest - ページ分割された検索リンクとその引数を公開する
最新の Spring REST と HATEOAS を使用して、検索エンドポイントへのリンクを公開しようとしています。
リソース アセンブラは次のとおりです。
エンドポイントコントローラーは次のとおりです。
まず、buildPageRequest メソッドを呼び出して、単純に元のページング可能オブジェクトを検索サービスに渡す必要があるかどうかがわかりません。
私が抱えている問題は2つあります。
応答で公開されたリンクに searchTerm パラメータがありません:
次のようになると思います:
繰り返しになりますが、初心者の私にはよくわかりません。
そしてコントローラーは、リクエストで指定したページ番号とサイズの引数を無視して、常に 10 個のアイテムの最初のページをフェッチします。
私は解決策からそれほど遠くないと思いますが、公開されたリンクがどのように見えるべきか正確にはわかりません.
どんな指示もとてもいいでしょう:-)
編集:情報を追加
ページング可能な構成:
このサービスは、リポジトリをラップするだけです。
これはインターフェースです:
ページ search(@Param("searchTerm") String searchTerm, Pageable page);
データベースは JPA が前面にある H2 であり、コンソールには次のように表示されます。
オフセットが欠落していることがわかります...
敬具、
ステファン・エイバート