API 37signalsに基づくデータベースの作成

当社のサービスの1つは、 Highriseからのデータを分析する日次レポートを作成することです。

Highriseからのデータは、いくつかの方法で取得できます。



CSVについても考慮せず、APIを使用してデータベースを毎日更新する便利な方法を見つけようとしました。

私たちは次のことを思いつきました。





サンプルXML応答(https://xxx.highrisehq.com/deals.xml):



画像



矢印は、ネストされていると見なされる要素を示しているため、関連するテーブルにデータを配置します。



XML MySQLテーブルから行ったように。






出力で得られるものの例:



画像



これで、このデータを使って何でもでき、グラフを描き、金額を数え、他の興味深い情報を引き出すことができます。



最も重要なことは、結果のコードが37signalsのすべてのサービスで機能し、それらのサービスのいずれかを同期できることです。



Basecampの同期の例




<?php require 'SyncService.class.php'; $sync = new SyncService( array( 'db' => array( 'host' => 'localhost', 'user' => 'root', 'password' => '123', 'schema' => 'basecamp' ), 'service' => array( 'name' => 'basecamp', 'url' => 'https://xxx.basecamphq.com', 'token' => 'abcdef1234567890abcdef1234567890', 'streams' => array( '/todo_lists.xml' => 500, '/people.xml' => 500, '/projects.xml' => 500, '/account.xml' => 0, ) ), ) ); $sync->doSyncing();
      
      







すべてのライブラリコードとgithubのサンプル。



All Articles