Integrate.ioのAPI管理サービスのインスタンスを起動してデータベースに接続し、API DocsインターフェースでテストAPIコールをいくつか実行しました。では、次は何でしょうか?幸いなことに、Integrate.ioがAPIエンドポイントの自動生成をすでに行っているので、そこは飛び越えて、Integrate.ioが管理するAPIと対話するクライアントの作成に進めます。
本記事では、認証のためにAPIキーを使用してHTTPベースのAPIにGETリクエストを送信する、簡単なRESTクライアントの例を7つご紹介します。NodeJS、Python、Ruby、PHP、Perlのデモと、InsomniaとPostmanという素晴らしいAPIテストツールを使った新しいAPI呼び出しのテスト法もご紹介します。
サンプルプロジェクトの設定
ライブデータを使用して、こういった例のようにしたい場合、 JavaScriptのアドレス帳のサンプルアプリケーション設定がお勧めです。このアプリケーションをまだIntegrate.io(旧DreamFactory)のインスタンスにインストールしていなかったら、【アプリ】タブをクリックしてください。そして画面の左側にある【インポート】をクリックし、 JavaScriptのアドレス帳プロジェクトの横にある【選択】をクリックします。その後、画面の一番下までスクロールして【インポート】ボタンをクリックします。これでアプリケーション例のデータセットがIntegrate.ioのインスタンスにロードされましたが、他の機能を試したい場合は、前述のプロジェクトの【README(リードミー)】にある他の設定ステップもいくつかやりたくなるかもしれません。
いずれの場合も、APIドキュメントにアクセスして、【db】サービスを選択し、以下のエンドポイントまでスクロールダウンしてください。
GET /db/_schema
以下のスクリーンショットのような出力が表示されるはずです:
GET リクエストが正常に実行されると、実行の完了を示す 【200】 というレスポンスコードと、スキーマ内のテーブルのJSON(JavaScript Object Notation)表現を受け取ることができます。では、サンプルデータがいくつか利用可能になったので、GETリクエストを少し試してみましょう。この例では、次のAPIエンドポイントを使って【contact_info】テーブルに問い合わせを行います。
GET https://localhost/api/v2/db/_table/contact_info
NodeJS REST APIの例
最初の例として、シンプルなNodeJSスクリプトを2つ見てみましょう。以下は、ネイティブなNodeJS HTTP GETリクエストの例です。お気に入りのテキストエディタで 【rest.js】 という新しいファイルを作成し、以下のコードを入力します:
【ホスト名】と 【x-dreamfactory-api-key】フィールドを更新し、Integrate.ioのインスタンスに関連する場所と割り当てられたアプリケーションAPIキーが反映されたら、変更を保存してターミナル経由でスクリプトを実行します。
$ node rest.js
大きなJSONデータのブロックが返されるはずです。これをクリーンアップして、もう少し詳しくデータを見たい場合は、レスポンスをコピーして JSONLintに貼り付けることができます。テキストエリアにデータを貼り付けたら、【JSONを検証する】をクリックします。これで、以下の2つの重要なタスクが達成されます:
- JSONからもう少し読みやすいものへのフォーマット化
- JSONがJSON仕様で説明されている正しい形式であることへの確認。何らかの理由でJSONが有効でない場合、JSONを正しくフォーマットするための手順を示すヒントが表示される。
このスクリプトは、単純なGETコールを1回行うには少し重く感じられました。もう一度同じ呼び出しを試してみましょう。今回は【unirest】モジュールを使います。NPM(パッケージ管理ツール) は NodeJSに付属しており、ユーザーは Nodeモジュールと呼ばれるものをインストールできます。もし、Integrate.ioでカスタムスクリプトによるサービスやイベントスクリプトを行う予定があるのであれば、これも有用でしょう。NPMを使ってunirestモジュールをインストールしましょう。
$ npm install -g unirest
【-g】オプションは、モジュールをグローバルにインストールします。特にサーバーサイドのスクリプトで使用する場合は、NodeJS モジュールをグローバルにインストールすることをお勧めします。【unirest】モジュールのインストールが完了したら、テキストエディタを開き、以下のコードを貼り付けてください:
スクリプトを 【resty.js】という名前で保存し、以下のように実行します:
$ node resty.js
以前と同様に、長いJSONレスポンスが返されます。しかし今回は、ずっと少ないコードと、フォーマット化されたJSONというオマケで達成されました!
Python REST APIの例
NodeJSよりPythonを好むかもしれませんね。REST作成は、Pythonの【リクエスト】モジュールで簡単にできます。Pythonのパッケージ管理システムである pip (Pip Installs Packages)を使って、【リクエスト】 モジュールをインストールしましょう。ターミナルを開いて実行してください:
$ pip install requests
【リクエスト】モジュールがインストールされたので、もう一度テキストエディタを開いて、以下のコードを入力してみましょう:
すべて合っていると確認したら、ファイルを 【rest.py】として保存し、再びスクリプトを保存したディレクトリに移動し、Enter を押します:
他の例と同様に、すべてが適切に設定されていれば、スクリプトの出力に返されるJSONが表示されます。
Integrate.ioでは、Python(バージョン2および3)を使って、既存のAPIエンドポイントへのビジネスロジックの追加や、新しいスタンドアロンAPIの作成もできます。Integrate.ioのスクリプト機能については、こちらで詳しく説明しています。
PHP REST API の例
また、PHPを使ってHTTP APIリクエストを送信したい方もいるかもしれませんが、問題ありません。エディタに戻って、次のコードを入力してください:
ファイルを【rest.php】として保存し、以下のようにスクリプトを実行します。
$ php rest.php
Integrate.ioプラットフォームでは、Python(バージョン2および3)を使って、既存のAPIエンドポイントへのビジネスロジックの追加や、新しいスタンドアロンAPIの作成もできます。Integrate.ioのスクリプト機能については、こちらで詳しく説明しています。
Ruby REST API の例
RubyにおけるHTTPクライアントライブラリの数は、手足の指では足りないくらいですが、ここではそのうちの2つを取り上げます。まず、Ruby の標準ライブラリに組み込まれている 【net/http】 を使って、呼び出してみましょう。テキストエディタを開いて、次のコードを貼り付けてください:
これらの変更を保存して、次のようにスクリプトを実行します:
$ ruby rest.rb
もう一度やってみましょう、ただ今回はRubyの【httparty】gemを使います。「httpをまた楽しむ」と主張するこの素晴らしく便利なRuby gemは、コマンドラインや、Ruby、Sinatra、Ruby on Railsアプリケーションの中で対話的に使われます。Rubyのパッケージマネージャを使用して、【httparty】 gemをインストールしましょう。
$ gem install httparty
【httparty】 gemをインストールしたら、エディタを開いて、以下のコードを【rest2.rb】というファイルに貼り付けてください:
ファイルを保存して、次のように実行します:
$ ruby rest2.rb
Perl REST API の例
それでは、Perlの例にいきましょう。まず、Perl の CPAN(Comprehensive Perl Archive Network)パッケージ管理システムを使って、【REST::Client】 Perl モジュールをインストールします。ターミナルを開き、以下のコマンドを入力します:
$ cpan
cpanシェルに入ったら、次のコマンドを実行します:
install REST::Client
【REST::Client】のインストールが終了したら、cpanシェルを終了して、エディタを開き、以下のコードを貼り付けます。
ファイルを保存して、次のコマンドを実行します:
$ perl rest.pl
REST APIクライアントテストツール
Insomnia
InsomniaはIntegrate.ioチームが様々なプラットフォーム機能の実証のために毎日使っている、素晴らしいAPIテストツールです。Insomniaのウェブサイトから自由にダウンロードできるほか、有料版(ちなみに私たちも使っています)では、チームでAPIコールライブラリの共有ができます。以下のスクリーンショットにあるように、使い方はとても簡単です。GET、POSTなどのリクエストメソッドや目的のURLを特定し、APIキーを渡します。呼び出しが設定されたら、送信ボタンを押すだけで、リクエストの結果が右側のパネルに表示されます。
Postman
Insomniaと同様、Postmanは非常に人気のあるAPIテストツールで、API開発に有用な機能がかなり追加されています。インターフェースはInsomniaほど合理化されてませんが、それでも以下のスクリーンショットに示される通り使いやすいです。リクエストメソッドを特定し、URLとヘッダを設定し、送信ボタンを押したら、結果は下のペインに出力されます。
まとめ
これで、Integrate.ioのREST API から速く簡単にデータを取得、パースする7例が揃いました。APIエンドポイントは各クライアントコールで幾度となく使われており、サーバーサイドのコードは一行も必要ありません。
データ統合プラットフォームであるIntegrate.ioでは、企業はクラウド上でデータの統合、処理、分析のための準備を行うことができます。コードや専門用語を有しなくても使用できる環境であるため、ハードウェア、ソフトウェア、または関連インフラに投資することなく、どのような組織・個人でもビッグデータがもたらす機会をご享受頂けます。
14日間無料トライアル、無料デモやご相談は、 こちらのリンクよりリクエストをお願い致します。後ほど、弊社担当者よりご連絡させて頂きます。