これだけは知っておきたい《API》!WEB API利用の基本から実装パターンまでをマルッと解説
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
Web APIとは?
APIとはApplication Programming Interfaceの略であり、「ソフトウェアコンポーネントが互いにやり取りするのに使用するインターフェースの仕様である」と定義されています。最近使われているAPIとは、Web APIの意味で使われていることが多く、Web APIとは「HTT要求メッセージ群とXMLまたはJSON形式などの応答メッセージの構造定義で構成される」と説明されます(Wikipedia「アプリケーションプログラミングインタフェース」から抜粋)。
図1のように、人がウェブページを参照する時には、ブラウザのURLから、もしくは、ページ内のリンクをクリックすることでWebサーバーにHTTPリクエストが発行され、HTTPレスポンスとして人が解読可能なHTMLや画像・動画などのハイパーメディアをウェブページとして返します。同様に、アプリケーションからHTTPでリクエストを発行し、WebサーバーがHTTPでJSONもしくはXML形式でアプリケーションが解読可能なフォーマットでデータだけを返すことがWeb APIの仕組みです。
ユーザー(人)がブラウザからSaaSを利用する場合には、図2のようにブラウザに表示されたウェブページをユーザーインターフェース(以下、UI)としてアプリケーション操作(データの入力や参照)を行います。人がUIを通じてアプリケーション操作を行うという点では、社内設置型(オンプレ)のカスタムアプリケーションと方法に変わりはありません。
一方、人ではなく他のアプリケーションからSaaSデータを連携利用するためには、図3のWeb APIを使った連携を行う必要があります。設置型のカスタムアプリケーションに他のシステムからアクセスする場合には、アプリケーションのデータベースからCSV形式などのファイルに出力する、もしくは直接データベースにODBC、JDBC、ADO.NETといったデータベース接続の標準規格でアクセスを行うことでデータを連携する方法があります。この場合、主要なRDBMSと標準規格によって多くのエンジニアがデータ連携を簡単に行うことができます。
しかし、SaaSに他システムからアクセスする場合には、SaaS内のデータベースに外部からアクセスすることは当然できません。そのため、Web APIがSaaSを運営するサービス事業者から提供されておりWeb APIを通じてデータ連携を行います。冒頭の「API」というキーワードは、この「SaaS・Webサービスのデータをアプリケーション間で利用するためのWeb API」の利用のことを指しています。Web APIは大変便利な反面、個々のSaaS、Webサービスごとに異なるAPI仕様が発生してしまうこと、JDBC、ODBCのような業界標準ができていないという困難を生んでいます。
APIがもたらす拡張されたデータ連携の価値
最近では、SaaSの導入が進みWeb APIを使ったデータ連携が可能となると、データ連携のメリットは自社内だけではなく、外部を巻き込んだエコシステムで語られることとなっています。自社では競争力の源泉となるコアビジネスの機能をアプリケーションとして実装し、付随する機能はAPI連携で外部から補完することでコアの価値と多様な付随機能を効率よく両立することができます。複数のアプリケーションのWeb APIを組み合わせてまったく新しいサービスを提供するマッシュアップも盛んになっています。このような「オープンイノベーション」を使った拡張的なサードパーティエコシステムが形成されています。これが「APIエコノミー」と呼ばれるものです。ここにはパソコンから利用するアプリケーションだけでなく、モバイルアプリケーション、センサーやスマートデバイスを用いたIoT、APIバンキングなどの決済手段、シェアドエコノミーなど幅広い製品やサービスがAPIを通じて繋げられ、新しい価値を生みだしています。
データ連携の自社利用でも、API連携によるメリットが得られます。個々の従業員が自らの業務を効率化するのに、社内で利用されているさまざまなSaaSやGoogle Drive、Box、OneDriveといったクラウドストレージ内のファイル間のデータ同期を自ら行えるIFTTTやMicrosoft Flowなどのオートメーション化のサービスや、データのクレンジングやマッピングといったデータプレパレーションがノンプログラミングでできるセルフサービス型のETL ツールの利用が拡大しています。これらは、非エンジニア(Citizen Developer)によるパーソナライズされたデータ利用と言えます。
他方で、アーキテクチャでは、旧来のモノシリック(一枚岩)なシステムではなく、業務システム全体を小さなサービスをAPIで組み合わせることによってデザインし、変化に対応しやすいシステムを作り上げる「マイクロサービスアーキテクチャ」を実現できるようにもなりました。このようにアプリケーション内のデータベースやロジックの全部もしくは指定された部分を安全に公開しアプリケーシ間での利用を実現するWeb APIによって、データ連携の可能性は大きく広がったと言えるでしょう。
実は進んでいないデータ連携
しかし、このようなWeb APIによって拡張されたデータ連携のメリットを実感できない企業の方が多いのではないでしょうか? それどころか、導入した複数のSaaS間のデータ連携ができておらず、データの一元管理やオートメーションが後退してしまったという状況も多いように見受けられます。クラウドで提供されるSaaSは、時間をかけずに導入ができること、導入にコストがかからず課金が月額や使用量であることがメリットの一部です。短期導入やトライアルとしての部分導入を図った結果、顧客マスター、製品マスター、会計項目、人事マスターなどの本来一元化が図られるべき主要データすら連携せずに導入してしまうということが少なからず起こってしまいます。SaaSは基本的なデザインとして、それ単体で機能することを第一に作られているので、データ連携を導入前にあまり考えていなかったというのは不思議ではありません。また、オンプレで運用される帳票やBIツールからSaaSアプリケーションデータやNoSQLデータが抜け落ちているという悩みも聞かれます。
なぜ、このようなことが起きてしまうのでしょうか?
WEB API利用の基本から実装パターンについて、
こちらのホワイトペーパーで詳しく解説しています。
目次
- Web APIとは?
- APIがもたらす拡張されたデータ連携の価値
- 実は進んでいないデータ連携
- Web API利用の難しさ
- API連携ツールの活用がAPI利用拡大のカギに
- API連携をサポートするツール例
- Web API連携のパターンと利用シーン
- Appendix:データ連携ツール“ASTERIA WARP” 製品を利用したWEB API連携
ソーシャルもやってます!