基本的に 3 つのオプションがあります。
- REST API を使用する
- redmine プラグインの開発
- いくつかのカスタム SQL を行う
残りの API
最善の方法は、redmine REST APIを使用することです。これを使用すると、SQL クエリやサーバーを操作することなく、redmine から直接データを取得できます。Redmine サーバーが更新された場合でも動作するはずです。
Redmine プラグイン
次善の策は、おそらくredmine プラグインを開発することです。プラグインは redmine クラス ( 、 など) にアクセスできProject
ますUser
。たとえばProjects.all.map {|p| [p.id, p.identifier]}
、配列内のすべてのプロジェクトの ID と識別子を取得するようなことができます。このアプローチは REST API を使用するよりもはるかに強力ですが、redmine サーバーを変更する必要があります (プラグインをインストールして維持します)。redmine が内部構造を変更すると、プラグインはおそらく REST API よりも壊れやすくなります。
カスタムSQLのもの
カスタム SQL ソリューションの開発はお勧めしませんが、オプションです。このようなソリューションは、開発が難しく、壊れやすく、セットアップが困難ですが、パフォーマンスが向上する可能性があります。にリストされている redmine データベース構造を確認できますdb/schema.rb
。適切なスキーマがあれば、カスタム SQL クエリを開発してダッシュボードに返すことができます。
セキュリティを考える
通常のセキュリティ関連 (これも考慮する必要があります :)) とは別に、redmine には豊富な権限システムがあることを思い出してください。(パブリックに) 利用可能にするオブジェクトを検討してください。これは、最後の 2 つのオプションにとって最も重要です。プラグイン アプローチを使用する場合は、User#allowed_to
メソッドを確認する必要があります。
お客様の要件に関する情報が少ないため、REST API を使用する必要があると感じています。