問題タブ [spring-data-rest]
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-data-rest によって公開されたカスタム jpa リポジトリ メソッド
http://docs.spring.io/spring-data/data-jpa/docs/1.0.x/reference/html/#repositories.custom-implementationsで詳しく説明されているように、jpa リポジトリにカスタム メソッドを追加しました。
私が見る限り、このメソッドは spring-data-rest を使用すると公開されません。spring-data-rest によって生成された REST API の一部として (Spring MVC コントローラーを自分で作成せずに) 公開する方法はありますか?
java - Spring Data Rest と PagingAndSortingRepository で例外を処理するにはどうすればよいですか?
次のようなリポジトリがあるとします。
これはうまくいきます。ただし、クライアントが形成されたリクエスト (存在しないフィールドを検索するなど) を送信した場合、Spring は JSON として例外を返します。@Query
などを明らかにする。
スローされてクライアントに送信される例外の例:
これらの例外を処理するにはどうすればよいですか? 通常、@ExceptionHandler
MVC コントローラーには を使用しますが、Data Rest API とクライアントの間のレイヤーは使用していません。するべきか?
ありがとう。
spring-data-rest - Spring Data Rest : リポジトリから json スキーマを公開する方法 (2.0.0.M1)
ソースコードで、Spring DATA Rest が /{repository}/schema.
これを設定する方法を知っている人はいますか?
RepositorySchemaController (org.springframework.data.rest.webmvc) がありますが、使用方法がわかりません。
バージョン: 2.0.0.M1
java - spring-data-rest と spring websocket を単一の実装に混在させる方法
特定のエンティティの変更に関心のあるすべてのクライアントに状態を同期したいと思います。だから私は次のようなものを達成したいと思います:
- エンティティで CRUD API を公開する ( および を介し
HTTP/REST
てwebsockets
) - (変更呼び出しの)応答を
websockets
トピックにルーティングします
技術的には、 spring-data-restとspring websocket の実装を組み合わせて、spring-data-websocket のようなものを実現するアイデアに興味があります。
私の頭に浮かぶ2つの解決策があり、実際には両方とも次のようになります。
- spring-data-rest を介してエンティティを公開する
REST/HTTP API
websocket
コントローラ (エンティティの変更呼び出しに使用)
コントローラーは次のwebsocket
ようになります。
シナリオ 1:Websocket API
から呼び出されたREST/HTTP API
ルール:
- クライアントのリクエストは常に
REST/HTTP API
- 応答は
REST/HTTP API
すべての操作に対するものです - さらに、操作を変更すると、
websocket
メッセージも表示されます
技術的には、次の方法で実現できます。
- spring-rest-data イベント
websocket
からコントローラーを呼び出す(つまり、、、)AfterCreateEvent
AfterSaveEvent
AfterLinkSaveEvent
AfterDeleteEvent
私が行く必要があるので、それでも解決策は私にはかなりうんざりしているようです:
- クライアント A --
HTTP
リクエスト --> サーバー (spring-data-rest コントローラー) - サーバー (spring-data-rest コントローラーの AfterXXXEvent) --
websocket
メッセージ --> Springwebsocket
コントローラー - Spring websocket コントローラー --
websocket
トピック経由のメッセージ --> トピックに関心のあるすべてのクライアント - サーバー (spring-data-rest コントローラー) --
HTTP
応答 --> クライアント A
シナリオ 2:Websocket API
から独立REST API
ルール:
- クライアント要求は
REST/HTTP API
非変更操作専用です - 応答は
REST/HTTP API
非変更操作のみです - クライアント
websocket
はすべての変更操作に対してメッセージを送信します websocket
メッセージは、すべての変更操作に対してのみクライアントに送信されます
他にアイデアが思い浮かばない場合は、後者の方法を使用しますが、それでも、spring-data-websockets のようなものC(R)UD
を介して公開されるメソッドを何らかの方法で生成し、ルートのみを処理できれば素晴らしいと思います。websockets
私の実装。
すべてのエンティティのすべてのメソッドを( *WebSocketController
sを介して) 手動で公開する必要があるように感じます。CUD
そして、私はそれには怠惰すぎるかもしれません。
アイデア?
spring - Spring Data Rest ページング可能な子コレクション
User という @Entity があります。次のような変更セットのセットがあります。
私は UserRepository を持っています:
ChangesetRepository:
http://localhost:8080/changesets/
またはで GET を呼び出すhttp://localhost:8080/users/
と、ページングされた応答が生成されます。
GET を呼び出すとhttp://localhost:8080/users/1/changesets
、すべての結果が 1 つの配列で取得され、ページングは発生しません。
親ユーザーを介してアクセスするときに、変更セットコレクションをページング可能な方法で返したいことを Spring Data Rest に示す方法はありますか? 変更セットのセットは急速に拡大するため、1 ページに大量の結果を返すのは避けたいと考えています。
編集:
Willie Wheeler が提案したように、これを ChangesetRepository に追加して検索可能にしました。
私は関係を双方向のままにしましたが、変更セットのセットで使用することにより、変更セットへのリンクをユーザーから隠すこともできました@RestResource(exported=false)
。
補足: 関係を export=false に設定すると、リンクが非表示になりますが、実際にはマッピングが削除されないようです。/users/1/changesets は宣伝されていませんが、有効です。
spring - Spring Data Rest と Hateoas
@RestResource アノテーションでリポジトリにアノテーションを付けて、Spring Data Rest の動作をテストするための簡単なチュートリアルに従っていました。私は非常に単純なシナリオを持っています: @RestResource で注釈が付けられた Jpa User Entity と UserRepository
アノテーション構成の初期化を使用し、RepositoryRestMvcConfiguration を登録しようとするため、UserRepository を登録できます。しかし、アプリケーションが起動せず、次の例外があります
spring-hateoas: 0.8.0.RELEASE spring-data-rest-webmv: 2.0.0.RC1 spring-framework: 4.0.0.RELEASE spring-data-jpa:1.4.3 を使用します。
spring-data - Spring Data REST 2.0 RC1 を機能させるにはどうすればよいですか?
Spring Data REST 1.1.0.M1 が動作しましたが、バージョン 2.0 を試してみたいと思います。
これが私のPOMです:
SDR 2.0.0.R1 を試すと得られClassNotFoundException: org.springframework.data.web.config.HateoasAwareSpringDataWebConfiguration
、HATEOAS 0.9 を試すと得られますIllegalArgumentException: Content must not be a collection! Use Resources instead!