問題タブ [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.

0 投票する
2 に答える
1714 参照

spring - リソースIDをクライアントに提示する方法は?

org.springframework.hateoas.ResourceSupportすでにgetIdメソッドが含まれています。

私のリソース(またはより良いドメインオブジェクト)にクライアントに提示する必要がある整数IDが含まれている場合、単純なものidを追加してgetId/を追加することはできませんsetIdResourceSupportすでに持っているように)。

何かを返す必要がありますか、それとも<myResourceObjectName>_idによって提供された ID リンク/URL をクライアントに解釈させるほうがよいResourceSupportですか?

0 投票する
1 に答える
397 参照

java - @EnableHypermediaSupport に相当する XML 構成

Spring-HATEOAS を使用した REST API 開発に関する記事を読んだり、プロジェクト ページやドキュメントを閲覧したりしていましたが、これまで Java 構成を使用したサンプル コードしか見たことがありませんでした。@EnableHypermediaSupportこの記事の例に示されている構成と同等の XML はありますか?

0 投票する
2 に答える
832 参照

spring - MongoRepository Keep HATEOAS フォーマットの実装/オーバーライド

post(save()) で生成された ObjectId を返すように変更したい単純な MongoRepository があります。

クライアント側でIDを生成して投稿に渡す方法を検討しましたが、Springにこれを処理してもらいたいです。

次のように、コントローラーでインターセプトし、ResponseBody でオブジェクトを返すことを試みました。

これの問題は、HATEOAS 関連のすべてのロジックの Spring ハンドルをやり直す必要があることです。これは大きな痛みです。(私が何かを見逃していない限り。)

すべてのメソッドを置き換えることなくこれを行う最も効果的な方法は何ですか?

0 投票する
3 に答える
8188 参照

spring - Spring-Data-Rest / Spring-Hateoas で生成されたクラスのフォーマットをカスタム コントローラーに反映させることはできますか?

私は本当に単純であるべきだと思うことをしようとしています。Questionspring-boot、spring-data-rest、spring-hateoas でセットアップされたオブジェクトがあります。すべての基本は正常に機能します。GET が myのURLList<Question>とまったく同じ形式でを返すカスタム コントローラーを追加して、2 つの間の応答に互換性を持たせたいと考えています。Repository/questions

これが私のコントローラーです:

オプション 1: 提供されたものに頼るSimplePagedResourceAssembler

このオプションの問題は、必要な_linksものがレンダリングされないことです。これに対する修正があれば、それが最も簡単な解決策になります。

オプション 2: オープン リソース アセンブラーを実装する

このオプションの問題は、 Spring-Hateoas のドキュメントQuestionResourceAssemblerに従って実装すると、最終的に が のほぼ複製になるパスが導かれ、アセンブラーが 2 つのオブジェクト間でデータを手動でコピーする必要があり、すべてをビルドする必要があることです。関連するものを手で。これは多くの無駄な努力のようです。QuestionResourceQuestion_links

何をすべきか?

Spring は、QuestionRepository. コントローラーからの出力がシームレスで、生成された応答と交換可能であることを確認するために、そのコードを利用して使用する方法はありますか?

0 投票する
1 に答える
1498 参照

spring - RestTemplate を介して Spring ハイパーメディア リソースを HAL+JSON CURIE と交換する

Spring Framework 4.1.0 と Spring HATEOAS 0.16.0 を使用して、Spring Web アプリケーションとそのアプリケーション用の Spring テスト クライアントの両方を開発しています。

テスト クライアントには、次のようなステートメントがあります。

...ここCalculationで、Jackson アノテーション (たとえば、@JsonProperty) を持つ POJO です。

CURIE がなければ、そのRestTemplate.exchange()呼び出しは成功します:response.getBody().getLinks()の null 以外の空でないインスタンスを返しますList<Link>

私の Web アプリケーションには、「サブ計算」などの非標準のリンク関係があります。CURIEを使いたい。

CURIE を使用すると、そのRestTemplate.exchange()呼び出しは失敗します: 応答デシリアライゼーション コードが をスローorg.springframework.http.converter.HttpMessageNotReadableExceptionします。原因com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: 'JSON を読み取れませんでした: 認識されないフィールド "名前" (クラス org.springframework.hateoas.Link)、無視可能としてマークされていません (既知のプロパティ "href" の 1 つ) ])'

特に、Jackson_linksは応答 JSON のマップからList<Link>型付きフィールドへの CURIE のデシリアライズに失敗しますorg.springframework.hateoas.ResourceSupport.links。応答の JSON は次のようになります。

HAL+JSON ("application/hal+json")表現が CURIEを使用RestTemplate.exchange()するリソースを取得するにはどうすればよいですか?

0 投票する
1 に答える
2909 参照

jersey - Spring HATEOAS のように JAX-RS リソースを別のリソースにリンクする方法はありますか?

Spring には@ExposesResourceFor、リソースを他のリソースとリンクできるアノテーションがあります。このおかげで、Value オブジェクト (表現) は実際のリソースについて何も知ることができません。

JAX-RSでそれを行う方法はありますか? 私はJerseyとJacksonでDropwizardを@InjectLinks使用していますが、表示されるのは次のような値オブジェクトで使用できる注釈だけです:

しかし、残念ながら、私の値オブジェクトはリソースについて何も知らないはずなので、リソースのレベルでそのようなリンクを行うことができるかどうか尋ねています-上記のように、コントローラーのスプリングヘイトでリンクします。

0 投票する
5 に答える
9523 参照

spring - RepositoryRestHandlerMapping と EndpointHandlerMapping を無効にする方法は?

現在、Spring Boot、Hibernate、および Spring-HATEOAS を使用して、REST インターフェイスを備えたアプリケーションを構築しています。私のデータモデルは注釈付きの Bean として定義されており@Entity、Spring の機能を使用して Hibernate リポジトリを自動的にセットアップしています (Creating an interface extends PagingAndSortingRepository)。私のアプリケーションは完全にアノテーション駆動型です。つまり、web.xmlSpring アノテーションなどを使用してすべてを構成する@Configurationしかありません@BeanmainSpringApplication.run(MyApp.class, args);

これは正常に機能しますが、このアプローチではRepositoryRestHandlerMappingandEndpointHandlerMappingが作成されます。これらは、私が必要としない、または望んでいない一連のリソースを作成します。標準ロジック以上のことを行う必要があるため、独自のコントローラーを実装します。

このデフォルトの動作を防ぎ、これらのマッピングを無効にするにはどうすればよいですか?