HTTP エンドポイントにつなぐ
方向は 2 つ。TableDI が計画に従ってあなたのエンドポイントを叩くか、TableDI が示すアドレスへ外部システムが押し込むか。ヘッダー、デバッグリクエスト、そして応答の中の配列を JSONPath で指す方法まで。
このマニュアルの日本語は解説文です。アプリの画面表示は英語のため、メニュー名・ボタン名・エラーメッセージは画面どおり英語で表記し、スクリーンショットも英語画面のものを使っています。
方向は 2 つ
| 方式 | 誰が始めるか | 向いている用途 |
|---|---|---|
| クライアントとして | TableDI が、指定した URL へ計画に従ってリクエストする | 外部の公開 API、自社システムの照会エンドポイント |
| サーバーとして | TableDI がアドレスを示し、外部システムがそこへ POST する | 機器、スクリプト、押し込んでくる他システム |
どちらも他のデータ接続と同じ 4 段階のウィザードで設定します。
クライアントとして
Connection Settings —— エンドポイントの URL を貼れば、ホストとパスに分けてくれます。トークンが要るエンドポイントにはヘッダー行を足します(Key / Value、たとえば Authorization: Bearer …)。認証方式はシステムごとに違うので、そのエンドポイント自身のドキュメントが正です。
Channel Settings —— メモと Request Frequency。Debug はその場で 1 回リクエストを飛ばし、生の応答を見せます。何か返ってくるまでこの段階から先へ進まないでください。空のままならウィザードがそう言います —— No data received yet. Please verify channel settings.
Date Selection —— 返ってきた JSON がプレビューに出るので、表に入れるノードにチェックを付けます。エンドポイントはたいてい配列をオブジェクトで包んで返すので、Original Code に切り替えて配列を直接指す JSONPath を 1 本書くのが早いです。
$.data.list[*]
よく使う形:任意の深さの name なら $..name、絞り込みなら $.items[?(@.status == 'paid')]、先頭 10 件なら $.items[0:10]。不正なパスは Enter a valid JSON Path で弾かれ、入力欄の横に JSON Path Guide のリンクがあります。文法の全体は関数リファレンスの JSONPath の節に。
Data Binding —— フィールドを列へ対応づけて完了です。
サーバーとして
「サーバーとして」を選ぶと、TableDI が受信用のアドレスを生成します。外部システムの送信先にそれを設定すれば、POST のたびに行が増えます —— 表に主キーがあれば、増えるのではなく更新されます。Channel Settings からデバッグ用のペイロードを 1 回送れるので、構造を定義して列を対応づける前に形を確認できます。
知っておく価値のあること
- 引くたびに追加されます。 「前回以降の新規レコード」ではなく「現在の全量」を返すエンドポイントは、主キーを設定しない限り行を増殖させます。HTTP 接続でいちばん多い失敗がこれです。
- デスクトップ版のエンジンはあなたのパソコンで動きます。 エンドポイントはここから到達できる必要があり、引く動作はアプリが開いている間だけ起きます。無人で 24 時間同期させたいならチーム版のクラウドエンジンを使ってください。
- サーバー方式のアドレスもローカルです。 デスクトップ版ではこの機械からしか到達できません。外部システムに押し込ませるのはチーム版の構成です。
- レート制限は相手のものです。 Request Frequency は相手が許す範囲にしてください。攻めすぎると絞られ、チャネルは Sync Error になります。