LINQ を使ってNASA のデータに連携する方法

加藤龍彦
加藤龍彦
デジタルマーケティング
LINQ は.NET Framework 3.0以上でデータクエリ用のインターフェースを提供し、CData Data Providers for ADO.NET からプログラムでデータにアクセスする簡単な方法を提供します。この記事では、LINQ を使ってNASA Data Provider から情報にアクセスします。



この記事では、CData ADO.NET Data Provider for API 経由でLINQ を使ってNASA テーブルにアクセスする方法を説明します。これを行うには、Entity Framework にLINQ を使います。これにより接続を作成し、あらゆる CData ADO.NET Data Providers からLINQ を使ってデータにアクセスできるようになります。

  1. Visual Studio の新規プロジェクトで、プロジェクトを右クリックし[新しい項目の追加]を選択します。[ADO.NET Entity Data Model]を追加します。
  2. [データベースから生成]を選択し、[次へ]をクリックします。
  3. [接続の追加]をクリックし、データソースタイプを "CData NASA Data Source" に変更します。
  4. データソースの接続情報を入力します。一般的な接続プロパティは以下のとおりです:

    API キー認証の設定

    ほとんどの NASA API エンドポイント(APOD、NeoWS、DONKI、TechTransfer)では、NASA API キーが必要です。https://api.nasa.gov で無料のキーを登録してください。デフォルトの DEMO_KEY ではアクセスが制限されます(1 時間あたり 30 リクエスト、1 日あたり 50 リクエスト)。登録済みのキーでは 1 時間あたり 1,000 リクエストが可能です。

    以下のエンドポイントは API キーが不要で、認証なしで利用できます:EONET(Earth Observatory Natural Event Tracker)、EPIC(Earth Polychromatic Imaging Camera)、NASA Image and Video Library、TechPort。

    API キーを取得したら、以下の接続プロパティを設定します:

    • AuthScheme:APIKey に設定します。
    • APIKey:NASA の API キーに設定します。簡単なテストには DEMO_KEY を使用します。

    接続文字列の例

    Profile=C:\profiles\NASA.apip;AuthScheme=APIKey;APIKey=YOUR_NASA_API_KEY
    

    NASA への接続

    認証を設定すると、NASA に接続して、AstronomyPictureOfDay、NearEarthObjectFeed、EonetEvents、NasaImageLibrary などの利用可能なテーブルからデータをクエリできます。

    Below is a typical connection string:

    Profile=C:\profiles\NASA.apip;AuthScheme=APIKey;APIKey=YOUR_NASA_API_KEY
  5. Required connection properties for the data source. (Salesforce is shown.)
  6. エンティティ接続をApp.Config に保存する場合は、エンティティ名を設定します。この例では、APIEntities をエンティティ接続としてApp.Config に設定しています。
  7. モデル名を入力し、モデルに含めたいテーブルまたはビューを選択します。
The available tables in the underlying data source. (QuickBooks is shown.)

作成したエンティティを使って、選択、更新、削除、および挿入コマンドが実行できます。例:

APIEntities context = new APIEntities();
var astronomypictureofdayQuery = from astronomypictureofday in context.AstronomyPictureOfDay  select astronomypictureofday;
foreach (var result in astronomypictureofdayQuery) {
	Console.WriteLine("{0} {1} ", result.Id, result.);
}
	

サポートされたLINQ のクエリ例は、ヘルプドキュメントの「LINQ およびEntity Framework」をご参照ください。

はじめる準備はできましたか?

API Driver で NASA のライブデータに接続

NASA に接続