インメモリ データ ソースの追加
現在、Reveal SDK は、Reveal SDK core パッケージからデータ ソースを分離する過程にあります。プロジェクトの継続的な機能を確保するために、プロジェクトに追加のパッケージをインストールするこ とが必要になる場合があります。詳細については、サポートされるデータ ソース トピックを参照してください。
Reveal SDK を使用すると、実行時に生成されたデータを使用してダッシュボードを作成できます。このデータは通常、ASP.NET Web API サーバー アプリケーション内で使用されるビジネス オブジェクト (POCO クラス) によってサポートされます。このタイプのデータは、インメモリ データと呼ばれます。
アプリケーションのインメモリ データを Reveal SDK のデータ ソース項目として追加するには、主に 3 つの手順があります。
手順 1 - ASP.NET Web API サーバー アプリケーションで、IRVDataProvider を実装するクラスを作成します。このクラスは、Reveal SDK に返される実際のインメモリ データを提供します。RVInMemoryDataSourceItem.DatasetId プロパティをチェックして、返すデータを確認する必要があります。
public class MyInMemoryDataProvider: IRVDataProvider
{
public Task<IRVInMemoryData> GetData(IRVUserContext userContext, RVInMemoryDataSourceItem dataSourceItem)
{
if (dataSourceItem.DatasetId == "MyDataSetId")
{
return Task.FromResult<IRVInMemoryData>(new RVInMemoryData(your-data));
}
else
{
throw new Exception("Invalid datasetId");
}
}
}
GetData メソッドは、Task<IRVInMemoryData> を返します。つまり、使用するインメモリ データはすべて RVInMemoryData オブジェクトでラップする必要があります。インメモリ データをコンストラクター引数に指定して RVInMemoryData オブジェクトの新しいインスタンスを作成するだけです。
手順 2 - RevealSetupBuilder.AddDataProvider メソッドを使用して、作成した IRVDataProvider を RevealSetupBuilder に追加するよう、Program.cs ファイル の AddReveal メソッドを更新します。
builder.Services.AddControllers().AddReveal( builder =>
{
builder.AddDataProvider<MyInMemoryDataProvider>();
});
手順 3 - RevealView.onDataSourcesRequested イベント内で RVInMemoryDataSourceItem を作成します。
RevealView.onDataSourcesRequested にイベント ハンドラーを追加します。
まず、id を revealView に設定した <div> タグを定義します。
<div id="revealView" style="height: 920px; width: 100%;"></div>
次に、イベント ハンドラーで、RVInMemoryDataSourceItem オブジェクトの新しいインスタンスを作成し、パラメーターとして一意の名前 / ID を指定します。この ID は 、IRVDataProvider で、要求しているデータはどのデータ ソースかを示すために使用されます。
const revealView = new RevealView("#revealView");
revealView.onDataSourcesRequested = (callback) => {
var inMemoryDataSourceItem = new RVInMemoryDataSourceItem("MyDataSetId");
inMemoryDataSourceItem.title = "My Data";
callback(new RevealDataSources([], [inMemoryDataSourceItem], true));
};
サーバーがクライアント アプリケーションとは異なる URL で実行されている場合は、RevealSdkSettings.setBaseUrl を呼び出す必要があります。サーバー アプリケーションとクライアント アプリケーションの両方が同じ URL で実行されている場合、このメソッドは必要ありません。このメソッドを呼び出す必要があるのは 1 回だけです。