この記事では、イベントストリームに HTTP ソースを追加する方法について説明します。
HTTP コネクタは、リアルタイム処理のために任意の REST API から Eventstream にデータを直接ストリーミングする、コードなしの構成可能な方法を提供します。 これにより、SaaS プラットフォームとパブリック データ フィードからデータを継続的にプルし、JSON 応答を構造化イベントに自動的に解析できます。 また、簡単に開始したり、API の例を選択したり、API キーを入力したり、Eventstream で必要なヘッダーとパラメーターを事前入力したりするのに役立つパブリック フィードの例も提供しています。
[前提条件]
- Fabric容量またはFabric試用版ワークスペースの種類を持つワークスペース。
- ワークスペースにアクセスするには、共同作成者以上のワークスペース ロールを持っている必要があります。
- パブリックにアクセスできる HTTP エンドポイント。 保護されたネットワークに存在する場合は、 Eventstream コネクタの仮想ネットワークインジェクションを使用して接続します。
- eventstream がない場合は、ガイドに従って イベントストリームを作成します。
ソースとして HTTP を追加する
まだ eventstream にソースを追加していない場合は、[ データ ソースの接続 ] タイルを選択します。 リボンの [ ソースの追加>データ ソースの接続 ] を選択することもできます。
既に公開されているイベントストリームにソースを追加する場合は、 編集 モードに切り替えます。 リボンで、[ソースの追加] >[データ ソースの接続] を選択します。
http を検索し、[接続] を選択して、HTTP コネクタをイベントストリームに追加します。
HTTP の構成と接続
パブリック API の例 のいずれかを選択して定義済みのヘッダーとパラメーターをすばやく開始するか、[ 終了 ] を選択して独自のカスタム HTTP コネクタを構成できます。
パブリック API の例を使用する
パブリック API の例を選択して、HTTP コネクタをすばやく設定します。
- Binance。 最新のビットコイン価格を取得する
- CoinGecko。 現在のビットコイン価格 (USD) を取得する
- ロンドンへの輸送。 ロンドン駅のライブ到着予測を取得する
- Alpha Vantage。 リアルタイム Microsoft (MSFT) 株価を取得する
- OpenWeather。 場所の天気予報を取得する
- NewsAPI。 米国で最新のビジネスの見出しを取得する
API キーを必要とする API の場合は、指定されたリンクを使用して API キーを申請し、入力ボックスに入力します。 その後、コネクタによって Fabric クラウド接続が自動的に作成され、必要な HTTP ヘッダーとパラメーターが事前入力されます。
Important
Binance サンプル API では API キーは必要ありませんが、利用規約に準拠する責任があります。
[ 既存の接続を使用する] を選択した場合は、[ 例の適用 ] を選択して、API キーを入力せずにサンプル API に必要なヘッダーとパラメーターを事前入力します。
または、[ 終了 ] を選択してウィンドウを閉じ、独自の HTTP ソースを最初から構成します。
独自の HTTP ソースを構成する
サンプル API を使用せずに独自の HTTP ソースを構成する手順に従います。
新しい接続を作成します。 [ 新しい接続 ] を選択し、HTTP ソースに必要なプロパティを入力します。
- ベース URL: HTTP エンドポイントのベース URL。
- トークン対象ユーザー URI (省略可能): トークンの対象となるリソース。
- 接続名: 接続の名前を入力します。
-
認証の種類: 現在、HTTP コネクタでは、
Anonymous、Basic、およびAPI Key認証のみがサポートされています。
要求方法:
GETまたはPOSTを選択します。ヘッダーとパラメーター: クラウド接続の作成時に API キー 認証を選択した場合は、ヘッダーまたはパラメーターで動的パラメーター ${apiKey} を使用して API キーを参照します。
たとえば、CoinGecko に接続するには、
x_cg_demo_api_key=${apiKey}というヘッダーを使用します。Important
ヘッダーまたはパラメーターに API キーやその他の資格情報を入力しないでください。
要求間隔 (秒): 連続する要求の間に待機する時間を秒単位で指定します。有効な範囲は [1, 3600] です。
最大再試行回数: エラーが発生したときにコネクタが要求を再試行する最大回数。有効な範囲は [10, 100] です。
再試行バックオフ (秒): コネクタが再試行する前にエラーの後に待機する時間 (秒)。有効な範囲は [1, 3600] です。
再試行状態コード: 要求の再試行をコネクタに求める HTTP エラー コードが返されました。 コードまたはコード範囲のコンマ区切りのリストを入力します。 範囲は、開始コードと省略可能な終了コードで指定されます。 例えば次が挙げられます。
-
400-には、400 以上のすべてのコードが含まれます。 -
400-500には、400 から 500 までのコード (500 を含む) が含まれています。 -
404,408,500-は、404 NOT FOUND、408 REQUEST TIMEOUT、およびすべての 5xx エラー コードで再試行するようにコネクタに求めます。
承認されていない、タイムアウト、要求が多すぎるなど、一部の状態コードは常に再試行されます。
-
ページ分割された API を処理する
一部の REST API では、1 つの応答ではなく、複数のページのデータが返されます。 たとえば、API は各応答で 100 個のレコードを返し、残りのレコードを取得するために追加の要求を必要とする場合があります。 HTTP コネクタでは、ポーリング サイクル内の複数のページ間でデータを取得できるように、改ページがサポートされています。
サポートされている改ページ位置の種類
HTTP コネクタでは、次の改ページ調整パターンがサポートされています。
-
ページ ベースの改ページ: 要求には、
page=1やpage=2などのページ パラメーターが含まれます。 コネクタはページ番号をインクリメントして、次のページを要求します。 -
カーソルベースの改ページ位置: API 応答には、
continuationTokenやnextPageTokenなどのカーソルまたは継続トークンが含まれます。 コネクタは、この値を使用して次のページを要求します。
ページングの設定
ページネーションを使用するには、HTTP コネクタで次の設定を行います。
- ページネーションを有効化: ページネーション処理を有効にします。
- 改ページ位置のモード: 改ページ位置の種類を指定します。 サポートされている値は Page と Cursor です。
-
応答データ JSON ポインター:
/value、/items、/articlesなど、API 応答内のデータ配列の場所を指定します。
ページ ベースの改ページの例
ページ ベースの API の場合、最初の要求が GET /api/data?page=1される可能性があります。
構成の例
-
ページネーション有効:
true。 - ページ区切りモード: ページ。
コネクタは、 page=2 や page=3など、後続のページに対する要求を送信します。 空の配列を返すなどして、API 応答が使用できるデータがなくなったことを示すと、改ページは停止します。
カーソルベースページネーションの例
カーソルベースの API の場合、応答には、 "continuationToken": "ABC123"などの継続トークンが含まれる場合があります。
コネクタは継続トークンを抽出し、 GET /api/data?continuationToken=ABC123などの次の要求でそれを使用します。 応答に別のトークンが含まれていないか、トークン値が null の場合、改ページは停止します。
改ページが停止する場合
次のいずれかの条件が満たされると、コネクタは追加ページの要求を停止します。
- API は空の応答を返します。
- 応答には、次のページ トークンは含まれません。
- API は、使用できるページがなくなったことを示します。
考慮事項
- 各ポーリング サイクルは、最初のページから開始されます。
- この機能を有効にする前に、API がページネーションをサポートしていることを確認してください。
- 改ページ設定の構成または JSON ポインターの設定が正しくないと、データが見つからないか重複する可能性があります。
API が各要求で返されるレコードの数を制限する場合は、改ページを使用します。
ストリームまたはソースの詳細
[ 接続 ] ページで、Eventstream または Real-Time ハブのどちらを使用しているかに基づいて、次のいずれかの手順に従います。
Eventstream:
右側の [ ソースの詳細 ] ウィンドウで、次の手順に従います。
[ソース名] で、[鉛筆] ボタンを選択して名前を変更します。
Eventstream 名と Stream 名は読み取り専用であることに注意してください。
リアルタイム ハブ:
右側の [ストリームの詳細] セクションで、次の手順に従います。
イベントストリームを作成するFabricワークスペースを選択します。
[イベントストリーム名] で [編集] ボタンを選択し、イベントストリームの名前を入力します。
Stream 名の値は、eventstream の名前に -stream を追加することによって自動的に生成されます。 このストリームは、ウィザードの終了時にリアルタイム ハブの [すべてのデータ ストリーム ] ページに表示されます。
[構成] ページの下部にある [ 次へ ] を選択 します。
確認して接続する
[ 確認と接続 ] 画面で概要を確認し、[ 追加] (Eventstream) または [接続 ] (Real-Time ハブ) を選択します。
編集モードでイベントストリームに追加された HTTP ソースを確認できます。
[ 発行] を選択して変更を発行し、HTTP ソースからイベントストリームへのデータのストリーミングを開始します。
制限事項
- 現在、HTTP コネクタは JSON API 応答のみをサポートしています。
- OAuth 認証 はサポートされていません。
- HTTP ソースは、 Git 統合 や デプロイ パイプラインなどの CI/CD 機能をサポートしていません。 Git を使用してこのソースを含む Eventstream 項目をエクスポートまたはインポートすると、エラーが発生する可能性があります。
関連コンテンツ
その他のコネクタ。