Node.js でFedEx を仮想MySQL データベースとしてクエリ

詳細情報をご希望ですか?

製品について詳細情報や無償トライアルをご案内します:

CData Connect



Node.js からFedEx に対してMySQL データベースとしてクエリを実行。

CData Connect Cloud を使って、MySQL インターフェースでFedEx をクエリすることができます。この記事では、Connect Cloud で仮想FedEx データベースを作成し、Node.js でFedEx をクエリする連携方法を説明します。

CData Connect Cloud は、FedEx データのクラウドto クラウドのインターフェースを仮想MySQL として提供し、Node.js からRDB のようにデータをSQL でクエリすることができます。CData Connect Cloud がNode.js から発行されるSQL クエリ(フィルタリングやJOIN も可能)をパースしてFedEx に送り、Node.js アプリ にFedEx からのデータを返します。インテリジェントなサーバーサイドプロセスで、多様なクエリをパフォーマンス良く利用できます。

FedEx の仮想MySQL データベースを作成

CData Connect Cloud は、直観的なPoint-and-click インターフェースでデータソースへの接続およびAPI エンドポイント作成を行います。

  1. Connect Cloud にログインして、[Databases]をクリックします。
  2. 利用できるデータソースアイコンから"FedEx" を選択します。
  3. FedEx に接続するために必要なプロパティを入力します。

    FedEx サービスでのアクションを認証するためには以下の5つの情報が必要です。

    • Server:リクエストを送信するURL を制御します。一般的なテストオプションは次のとおりです:"https://gatewaybeta.fedex.com:443/xml"、"https://wsbeta.fedex.com:443/xml"、"https://gatewaybeta.fedex.com:443/web-service"、および"https://wsbeta.fedex.com:443/web-service"
    • DeveloperKey:荷送人のID の認証キーの識別子部分。この値は、登録後にFedEx から提供されます。
    • Password:荷送人のID の認証キーのシークレット部分。この値は、登録後にFedEx から提供されます。
    • AccountNumber:この有効な9桁のFedEx アカウント番号は、FedEx サーバーへのログインに使用されます。
    • MeterNumber:この値はFedEx にリクエストを送信するために使用されます。この値は、登録後にFedEx から提供されます。
    • PrintLabelLocation:このプロパティはGenerateLabels またはGenerateReturnLabels ストアドプロシージャを使用するために必要です。これは、生成されたラベルを格納するフォルダの場所に設定する必要があります。

    キャッシュデータベース

    FedEx から利用できる便利なタスクの多くは、大量のデータを必要とします。データを簡単に入力して後で呼び出すことができるように、キャッシュデータベースを活用してこれらのリクエストを行います。キャッシュ接続プロパティを設定する必要があります。

    • CacheProvider: The specific database you are using to cache with. For example, org.sqlite.JDBC.
    • CacheConnection: The connection string to be passed to the cache provider. For example, jdbc:sqlite:C:/users/username/documents/fedexcache.db
  4. Test Database]をクリックします。
  5. [Privileges]->[ Add]をクリックして、新しいユーザーを追加し、適切な権限を指定します。

これで、FedEx の仮想データベースが作成でき、MySQL クライアントからの連携が可能になりました。

FedEx データをNode.js からクエリ

以下のサンプルは、Node.js のMySQL モジュールからFedEx への接続を定義し、クエリを実行します。以下の情報が必要です:

  • Host nameaddressport:Connect Cloud のインスタンス名(myinstance.cdatacloud.net)とポート(3306)です。
  • Username およびpassword:Connect Cloud で登録された権限のあるユーザーおよびそのパスワード。
  • Database name:FedEx (fedexdb) のデータベース名。

FedEx に接続して、以下のコードでクエリを実行します:

var mysql      = require('mysql');
var fs         = require('fs');
var connection = mysql.createConnection({
  host     : 'myinstance.cdatacloud.net',
  database : 'fedexdb',
  port	   :'3306',
  user     : 'admin',
  password : 'password',
  ssl      : {
    ca : fs.readFileSync('C:/certs/myCA.pem')
  }
});
connection.connect();
connection.query('SELECT * FROM Senders', function(err, rows, fields) {
  if (err) throw err;
  console.log(rows);
});

connection.end();