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呼び出しのテスト法もご紹介します。

目次

  1. サンプルプロジェクトの設定
  2. NodeJS REST APIの例
  3. Python REST API の例
  4. PHP REST API 呼び出しの例
  5. Ruby REST API の例
  6. Perl REST APIの例
  7. Insomnia の例
  8. Postman の例
  9. まとめ

サンプルプロジェクトの設定

ライブデータを使用して、こういった例のようにしたい場合、 JavaScriptのアドレス帳のサンプルアプリケーション設定がお勧めです。このアプリケーションをまだIntegrate.io(旧DreamFactory)のインスタンスにインストールしていなかったら、【アプリ】タブをクリックしてください。そして画面の左側にある【インポート】をクリックし、 JavaScriptのアドレス帳プロジェクトの横にある【選択】をクリックします。その後、画面の一番下までスクロールして【インポート】ボタンをクリックします。これでアプリケーション例のデータセットがIntegrate.ioのインスタンスにロードされましたが、他の機能を試したい場合は、前述のプロジェクトの【README(リードミー)】にある他の設定ステップもいくつかやりたくなるかもしれません。

いずれの場合も、APIドキュメントにアクセスして、【db】サービスを選択し、以下のエンドポイントまでスクロールダウンしてください。

GET /db/_schema

以下のスクリーンショットのような出力が表示されるはずです:

thumbnail image

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】 という新しいファイルを作成し、以下のコードを入力します:

thumbnail image

【ホスト名】と 【x-dreamfactory-api-key】フィールドを更新し、Integrate.ioのインスタンスに関連する場所と割り当てられたアプリケーションAPIキーが反映されたら、変更を保存してターミナル経由でスクリプトを実行します。

$ node rest.js

大きなJSONデータのブロックが返されるはずです。これをクリーンアップして、もう少し詳しくデータを見たい場合は、レスポンスをコピーして JSONLintに貼り付けることができます。テキストエリアにデータを貼り付けたら、【JSONを検証する】をクリックします。これで、以下の2つの重要なタスクが達成されます:

  1. JSONからもう少し読みやすいものへのフォーマット化
  2. JSONがJSON仕様で説明されている正しい形式であることへの確認。何らかの理由でJSONが有効でない場合、JSONを正しくフォーマットするための手順を示すヒントが表示される。

このスクリプトは、単純なGETコールを1回行うには少し重く感じられました。もう一度同じ呼び出しを試してみましょう。今回は【unirest】モジュールを使います。NPM(パッケージ管理ツール) は NodeJSに付属しており、ユーザーは Nodeモジュールと呼ばれるものをインストールできます。もし、Integrate.ioでカスタムスクリプトによるサービスやイベントスクリプトを行う予定があるのであれば、これも有用でしょう。NPMを使ってunirestモジュールをインストールしましょう。

$ npm install -g unirest

【-g】オプションは、モジュールをグローバルにインストールします。特にサーバーサイドのスクリプトで使用する場合は、NodeJS モジュールをグローバルにインストールすることをお勧めします。【unirest】モジュールのインストールが完了したら、テキストエディタを開き、以下のコードを貼り付けてください:

thumbnail image

スクリプトを 【resty.js】という名前で保存し、以下のように実行します:

$ node resty.js

以前と同様に、長いJSONレスポンスが返されます。しかし今回は、ずっと少ないコードと、フォーマット化されたJSONというオマケで達成されました!

Python REST APIの例

NodeJSよりPythonを好むかもしれませんね。REST作成は、Pythonの【リクエスト】モジュールで簡単にできます。Pythonのパッケージ管理システムである pip (Pip Installs Packages)を使って、【リクエスト】 モジュールをインストールしましょう。ターミナルを開いて実行してください:

$ pip install requests

【リクエスト】モジュールがインストールされたので、もう一度テキストエディタを開いて、以下のコードを入力してみましょう:

thumbnail image

すべて合っていると確認したら、ファイルを 【rest.py】として保存し、再びスクリプトを保存したディレクトリに移動し、Enter を押します:

thumbnail image

他の例と同様に、すべてが適切に設定されていれば、スクリプトの出力に返されるJSONが表示されます。

Integrate.ioでは、Python(バージョン2および3)を使って、既存のAPIエンドポイントへのビジネスロジックの追加や、新しいスタンドアロンAPIの作成もできます。Integrate.ioのスクリプト機能については、こちらで詳しく説明しています。

PHP REST API の例

また、PHPを使ってHTTP APIリクエストを送信したい方もいるかもしれませんが、問題ありません。エディタに戻って、次のコードを入力してください:

thumbnail image

ファイルを【rest.php】として保存し、以下のようにスクリプトを実行します。

$ php rest.php

Integrate.ioプラットフォームでは、Python(バージョン2および3)を使って、既存のAPIエンドポイントへのビジネスロジックの追加や、新しいスタンドアロンAPIの作成もできます。Integrate.ioのスクリプト機能については、こちらで詳しく説明しています。

Ruby REST API の例

RubyにおけるHTTPクライアントライブラリの数は、手足の指では足りないくらいですが、ここではそのうちの2つを取り上げます。まず、Ruby の標準ライブラリに組み込まれている 【net/http】 を使って、呼び出してみましょう。テキストエディタを開いて、次のコードを貼り付けてください:

thumbnail image

これらの変更を保存して、次のようにスクリプトを実行します:

$ 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シェルを終了して、エディタを開き、以下のコードを貼り付けます。

thumbnail image

ファイルを保存して、次のコマンドを実行します:

$ perl rest.pl

REST APIクライアントテストツール

Insomnia

InsomniaはIntegrate.ioチームが様々なプラットフォーム機能の実証のために毎日使っている、素晴らしいAPIテストツールです。Insomniaのウェブサイトから自由にダウンロードできるほか、有料版(ちなみに私たちも使っています)では、チームでAPIコールライブラリの共有ができます。以下のスクリーンショットにあるように、使い方はとても簡単です。GET、POSTなどのリクエストメソッドや目的のURLを特定し、APIキーを渡します。呼び出しが設定されたら、送信ボタンを押すだけで、リクエストの結果が右側のパネルに表示されます。

thumbnail image

Postman

Insomniaと同様、Postmanは非常に人気のあるAPIテストツールで、API開発に有用な機能がかなり追加されています。インターフェースはInsomniaほど合理化されてませんが、それでも以下のスクリーンショットに示される通り使いやすいです。リクエストメソッドを特定し、URLとヘッダを設定し、送信ボタンを押したら、結果は下のペインに出力されます。

thumbnail image

まとめ

これで、Integrate.ioのREST API から速く簡単にデータを取得、パースする7例が揃いました。APIエンドポイントは各クライアントコールで幾度となく使われており、サーバーサイドのコードは一行も必要ありません。

データ統合プラットフォームであるIntegrate.ioでは、企業はクラウド上でデータの統合、処理、分析のための準備を行うことができます。コードや専門用語を有しなくても使用できる環境であるため、ハードウェア、ソフトウェア、または関連インフラに投資することなく、どのような組織・個人でもビッグデータがもたらす機会をご享受頂けます。
14日間無料トライアル、無料デモやご相談は、 こちらのリンクよりリクエストをお願い致します。後ほど、弊社担当者よりご連絡させて頂きます。