API Driver API プロファイルの作成



RESTful API は、企業が外部データを扱ったり、自社データへのアクセスを提供したりするための一貫性のある簡単な方法を提供します。2019年6月、公開 API の数は 22,000 を超え、2015年以降は年間 2,000 以上の API が増加しています。API は組織や開発者に価値を提供し続けており、CData API Driver を使用すれば、これまで以上に簡単に API と連携できます。

API Driver を使用するメリット

CData API Driver は、他のすべての CData ドライバーと同じ目標を持って構築されています:データ連携プロセスを簡素化することです。API Driver と利用可能な API プロファイルを使用すると、BI、データ統合、カスタムアプリケーションから、コードを書くことなく数十の API(CData API Server を使用して構築された API を含む)に即座にクエリできます。拡張可能な設計により、組織や開発者は API Server の API プロファイルをカスタマイズしたり、独自の API プロファイルを作成することもできます。API Driver の接続性をあらゆる RESTful API に簡単に拡張できます。

この記事では、新しい API プロファイルを作成し、新しい API への SQL アクセスを有効にする手順を説明します。

API プロファイルの作成

API プロファイルは API への SQL アクセスを提供します。標準で数十の API がサポートされていますが、新しいプロファイルを作成して任意の API への SQL アクセスを有効にすることもできます。

スキーマファイル(.rsd)を作成する

API プロファイルには、API で利用可能なエンドポイントを表すスキーマファイルのコレクションが含まれています。この記事では、People エンドポイント用のスキーマファイルを作成して、TripPin OData v4 API 用のプロファイルを開始します。各スキーマファイルには、API エンドポイントへの SQL アクセスをどのように有効にするかを定義するいくつかのパーツがあります。

  • api:info:このキーワードは、スクリプト化されたカラム定義を通じて API フィールドをテーブルカラムにマッピングします。
  • attr:この要素はカラム定義を表します(詳細は後述)。
  • api:set attr="...":このキーワード(属性)は、ページング機能や API レスポンスの解析方法(RepeatElement 属性を使用)など、API 連携のさまざまなパラメータを設定します。
  • api:script method="...":このキーワードは、API エンドポイントの読み取り・書き込み機能の実装方法を定義します。どの内部オペレーションを呼び出すか、フィルタリングなどの特定の機能をどのように管理するかが含まれます。

まず、People.rsd という新しいテキストファイルを作成してください。ここから、API 仕様に基づいてスキーマファイルの各セクションを作成していきます。

カラム定義の作成

API Driver のスキーマファイルは API エンドポイントへの SQL アクセスを可能にします。まず、API Script キーワードやその他の機能を使用して、指定されたエンドポイントの対応する API フィールドのカラム定義を作成します。api:script キーワードにはスキーマ定義全体が含まれます。api:info キーワードはテーブル名と説明を提供し、カラム定義を含みます。各 API フィールドは attr(属性)要素でテーブルにマッピングされます。

API の People エンドポイントは、次のような JSON オブジェクトで表される一連の人物データを返します:

{
   "UserName" : "russellwhyte",
   "FirstName" : "Russell",
   "LastName" : "Whyte",
   "MiddleName" : null,
   "Gender" : "Male",
   "Age" : null,
   "Emails" : ["Russell@example.com","Russell@contoso.com"],
   "FavoriteFeature" : "Feature1",
   "Features" : ["Feature1","Feature2"],
   "AddressInfo" : [
      { "Address" : "187 Suffolk Ln.",
        "City":{
           "Name" : "Boise",
           "CountryRegion" : "United States",
           "Region" : "ID"
        }
       }
   ],
   "HomeAddress" : null
}

JSON 構造に基づくパス定義を使用して、レスポンス内の各値にアクセスし、レスポンスを効果的に SQL テーブルモデルにフラット化できます。API 仕様とレスポンスから推測される情報に基づいてカラム定義を作成してください。カラム定義の説明は以下のとおりです。


<api:script xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:api="http://apiscript.com/ns?v1" >
  
  
    
    <attr name="UserName" key="true" xs:type="string" readonly="true" other:xPath="UserName" />
    <attr name="FirstName"           xs:type="string" readonly="true" other:xPath="FirstName" />
    <attr name="LastName"            xs:type="string" readonly="true" other:xPath="LastName" />
    <attr name="MiddleName"          xs:type="string" readonly="true" other:xPath="MiddleName" />
    <attr name="Gender"              xs:type="string" readonly="true" other:xPath="Gender" />
    <attr name="Age"                 xs:type="int"    readonly="true" other:xPath="Age" />
    <attr name="Emails"              xs:type="string" readonly="true" other:xPath="Emails" />
    <attr name="FavoriteFeature"     xs:type="string" readonly="true" other:xPath="FavoriteFeature" />
    <attr name="Feature1"            xs:type="string" readonly="true" other:xPath="Features[0]" />
    <attr name="Feature2"            xs:type="string" readonly="true" other:xPath="Features[1]" />
    <attr name="Address"             xs:type="string" readonly="true" other:xPath="AddressInfo/Address" />
    <attr name="City"                xs:type="string" readonly="true" other:xPath="AddressInfo/City/Name" />
    <attr name="CountryRegion"       xs:type="string" readonly="true" other:xPath="AddressInfo/City/CountryRegion"/>
    <attr name="Region"              xs:type="string" readonly="true" other:xPath="AddressInfo/City/Region" />
  
...

カラム定義の属性

  • name:API エンドポイントの SQL インターフェースにおけるカラム名
  • xs:type:カラムに関連付けられたデータ型(string、datetime、int など)
  • readonly:カラムが書き込みを許可するかどうか(デフォルトでは常に true)
  • key:カラムがテーブル/ビューの要素の一意識別子として意図されているかどうか
  • other:xPath:API レスポンス内のカラム値へのパス(正確なパス、または RepeatElement からの相対パス)

特定のカラム

ここでは、特定のカラム定義を調べ、異なる属性が API フィールドの SQL マッピングをどのように作成するかを説明します。

カラム注目の属性意味
UserNamekeyUserName をテーブルの一意識別子として指定
すべてreadonlyカラムを変更できるかどうかを決定
すべてxs:typeSQL データ型を設定(API 仕様またはデータモデルに基づく)
Feature1other:xPath配列インデックス [0] は Features JSON 配列の最初のエントリを取得することを示す
Cityother:xPathAddressInfo JSON オブジェクトにドリルダウンして都市名を公開

グローバルパラメータの追加

カラム定義を作成した後、API との連携に必要なグローバルパラメータを設定します。これには、データをリクエストする API エンドポイント、接続に必要な値、API リクエストの特定のフィールドやヘッダー、API エンドポイントの個々のエントリを表す API レスポンス内の繰り返し要素が含まれます。

...
  
  <api:set attr="ContentType" value="application/json" />
  <api:set attr="EnablePaging" value="true" />
  <api:set attr="RepeatElement" value="/value" />
  <api:set attr="pagenumberparam" value="page_number" />
  <api:set attr="pagesize" value="300" />
  <api:set attr="pagesizeparam" value="page_size" />
  <api:set attr="uri" value="https://services.odata.org/TripPinRESTierService/People" />
...

読み取り/書き込み機能の追加

カラムとグローバルパラメータを定義したら、読み取りと書き込み機能をスクリプト化してスキーマファイルを完成させます。SELECT 機能は <api:script method="GET"> キーワードで実装され、HTTP メソッドを GET に設定し、apisadoExecuteJSONGet オペレーションを呼び出してデータを取得・処理します。

  
    <api:set attr="method" value="GET" />
    
      <api:push/>
    
  

INSERT / UPDATE / DELETE 機能を実装するには、POST、MERGE、DELETE メソッドを持つ追加の <api:script> 要素を追加し、さらにスクリプトで特定の機能を実装する必要があります。この記事では、SELECT 機能のみを実装し、API エンドポイントへの書き込みを試みた場合はエラーメッセージをスローします。

method 属性の設定

...
  
    
  
  
    
  
  
    
  
...

API 機能を実装すれば、JDBC または ADO.NET 接続をサポートする任意のツールやアプリケーションで API Driver を使用してプロファイルを利用し、API への SQL アクセスを実現できます。

DbVisualizer でのプロファイルの使用

API Driver には、API に接続するための2つの接続プロパティがあります:

  • Profile:API のスキーマファイルを含むフォルダ。
  • ProfileSettings:選択したプロファイルに必要な接続プロパティの名前と値のペアをセミコロンで区切ったリスト。オープン API に接続するため、このプロパティは空白のままで構いません。

DbVisualizer で接続するため、プロファイルを通じて API に接続する JDBC 接続文字列を設定します:

jdbc:apis:Profile=/PATH/TO/TripPin/;

DbVisualizer で API Driver を使用して新しい接続を作成し、Database URL を接続文字列に設定します。そこからプロファイルに接続し、データモデルを展開して、People「テーブル」(People API エンドポイントを表す)のデータを探索できます。

詳細情報と無料トライアル

これで、API プロファイルの作成を開始し、API Driver を通じて API に接続してクエリを実行できました。詳細については、API Driver ページをご覧いただくか、対応するナレッジベース記事で API Driver のセットアップや既存プロファイルの編集についてお読みください(API Driver のセットアップおよびAPI Driver プロファイルの編集)。API Driver をダウンロードして、RESTful API からのライブデータをコード不要で即座に操作してみてください。

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

CData API Driver の詳細、または無料トライアルをダウンロード:

今すぐダウンロード