広がりつつあるオープンデータの潮流ここ数年でAPIという言葉はエンジニア以外でも市民権を得ており、ニュースや経済誌でも「API経済圏(APIエコノミー)」の様な用語を見かけることが珍しくない状況になりつつあります。一方で、APIではなくファイル(CSV等)によるデータ公開も広まっています。いずれにせよ、大企業や銀行を含めた様々な企業や団体は新たな価値創造を期待してオープンデータの整備・公開を進めてきました。課題はあるものの、クローズドな印象のある大企業のデータを個人開発者でも扱えるような状況になりつつあります。書いてある内容はどれも当たり前の事ばかりなのですが、情報の整理がてら纏めてみます。企業でシステム開発の要件定義/設計に携わる人向けの内容ではありますが、個人開発者の方にも参考になれば幸いです。厳密には「バッチ駆動のAPI連携」もあれば「ニアリアルタイムなファイル連携」もあるので完全な言い換えにはなりませんが、大抵の場合は大きな問題のない表現だと思います。どちらか一方が正義ということはない結論から書くとどちらかが常に正しいということはなくケース・バイ・ケースです。私の肌感覚では「APIのほうが良いよね」といった事を耳にする事が多い気がするので「いやいやそうとは限らないよ」といったトーンの記事の書き方になってしまいましたが、どちらも闇雲に否定も肯定もせずフラットに捉えています。業務を例に記述していますが、更新系業務においてもほぼ同じことが当てはまると考えています。XML等)間のメリット・デメリットに関しては本記事で触れたい内容から外れますので、スコープ外とします。期待するようなデータの扱いが出来るのか言わずもがなですが、APIは「リクエスト&レスポンス」が対となってデータの受け渡しを行います。その前提を満たしていない場合、その目的に於いては残念ながらそのAPIを使いようがありません。「このパラメタをキーにできれば良いのに・・・」「リクエストを投げる際にこういうオプションがあったら良いのに・・・」と思った経験がある方もいるのではないでしょうか。一方でファイル連携の場合はデータ一式を丸ごと受け取ることになり、そのデータをどの様に扱うかは利用者側に委ねられます。正規化/構造化されている必要がありますが、「どの様な条件でデータの抽出を行うのか」という点において柔軟性があるのは事実です。求められるデータの新鮮度(業務要件として)API連携(この観点に於いてはリアルタイム型連携とほぼ同義とする)の場合、基本的にはデータが必要になる度にリクエストを投げる訳ですから、常に最新のデータを取得しに行くことになります。厳密にはAPI提供側のシステム仕様として、どのタイミングでデータが更新されるかに因りますが、この記事では便宜上即時反映されるものとします。一方でファイル連携(突き放し型連携)の場合、予め定めた次の洗い替えタイミングまでの間は、当然ながら腹持ちしているデータを参照し続けることになります。大事なことはデータを利用する際、データが必ずしも最新のものであるべきとは限らないということです。「最新でないと絶対に困る」ものも多々ありますが、その逆も然りです。「最新のほうが望ましい(better)」事はあっても、業務要件によっては「最新であることが必須(must)ではない」ということもあり得るわけです。