sql >> データベース >  >> NoSQL >> MongoDB

ALPS/HATEOASメタデータを使用してSpringDataMongoDBリポジトリを介して新しいRESTメソッドを公開するにはどうすればよいですか?

    tl; dr

    リポジトリとコントローラーのカスタム実装が必要になります。

    詳細

    ここで言及しているさまざまな側面すべてで迷子にならないようにする必要があります。枝を下から上に解きほぐしてみます:

    MongoDBスクリプトの実行

    としてMongoDBでのスクリプトの実行に関するリファレンスドキュメント 状態(そしてあなたはすでに発見しました)、機能はby MongoTemplateによって提供されます のScriptOperations 。したがって、そのAPIの使用方法は明確である必要があります。詳細については、Javadocを参照してください。

    SpringDataリポジトリを介したスクリプトの実行

    次に求めているのは、リポジトリの抽象化を通じてこれらのスクリプトを実行することです。ここでお風呂の水で赤ちゃんを捨てないようにするには、リポジトリの目的を理解していることを確認してください。リポジトリは、根底にある永続化メカニズムを公開せずに、骨材の根のコレクションとそれにアクセスすることをシミュレートします。 ExecutableMongoScriptのようなタイプを公開する リポジトリ上では、後者の特性が損なわれます。したがって、ここでの正しいアプローチは、Springデータリポジトリに関するリファレンスドキュメント

    RESTを介して機能を公開する

    質問のリポジトリクエリメソッド専用のリソースを公開するために、SpringDataRESTの機能を参照していると想定しています。 Spring Data RESTは現在、宣言型クエリメソッドのみを自動的に公開しています。これは主に、メソッド内で何が起こっているかを推測できないため、カスタム実装をサポートする正しいHTTPメソッドについて推論するのが難しいためです。

    @RequestMappingを使用してカスタムコントローラーを使用してカスタムリポジトリクエリメソッドを公開するための推奨される方法 目的に合わせて、リポジトリを呼び出し、PersistentEntityResourceAssemblerを使用します PersistentEntityResourceを生成するためにハンドラーメソッドに注入可能 戻る。




    1. MongoDBデザイン-タグ

    2. node.js+redisでユーザーとソケットのペアを処理する方法

    3. Flaskは構成をロードしません

    4. 複数のフィールドによるグループコレクションデータmongodb