「APIがあれば、誰でも簡単に外部と連携できる。」にご注意を!後悔しないAPI活用の理想と現実
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
多くのシステムやサービスにおいて外部との連携を可能にするAPI。このAPIを有効活用することで、開発者の負担軽減につながるだけでなく、既存製品のサービスレベルを向上させることが可能になりますが、使い方によっては大変な苦労を伴うことも。システム開発におけるAPI活用の課題とともに、使い方における最適解について迫ってみたいと思います。
システム同士を連携する際に有効なAPI(Application Programming Interface)は、ある特定のプログラムを外部から活用しやすくするための手続きや決まりとなる仕様のこと。今ではWebサイト上でWeb APIとして広く利用されており、今では他社が提供するさまざまな機能をAPI経由で利用できるエコシステム、いわゆる「APIエコノミー(経済圏)」といったワードで表現されるほどにまで広がりを見せていることはご存じの方も多いことでしょう。
APIの仕組みをおさらい
最近よく登場するクラウドサービスなどで利用されているAPI、いわゆるWeb APIを、従来のWebブラウザの動きと比較しながら分かりやすく見ていきましょう。
通常Webページを参照する際には、WebブラウザのURLから呼び出すだけでなく、ページ内のリンクをクリックすることで、参照したいWebページを持つWebサーバーにHTTPリクエストが発行されます。リクエストを受け取ったWebサーバーがHTTPレスポンスとして人が解読できる形のHTMLや画像・動画などのハイパーメディアをWebページとしてWebブラウザに返してあげることで、Webページ参照が可能になるわけです。
Web APIも同様に、特定のアプリケーションからHTTPリクエストを発行し、WebサーバーがHTTPを使ってJSONやXML形式などアプリケーションが解読可能なフォーマットでデータだけをレスポンスとしてアプリケーションに返すことで、外部のサービスから情報が取得できるようになる。これが、Web APIの基本的な仕組みです。
これらWeb APIの活用例としては、Salesforce上の顧客情報をWeb APIで取得して社内にある販売管理システムで見積書を発行する、カスタマイズ性能の高いサイボウズが提供するkintoneをインターフェースにSalesforceへ情報を格納する、遠隔会議のソリューションで共有する資料を全てBoxから呼び出して利用するなど。APIを使って複数のサービスを連携させることで、自社のサービスそのものの付加価値を高め、業務に役立つ仕組みが構築できるようになるのです。
ただし、Web APIを使ってSaaSなどのサービスにアクセスする場合は、設置型のアプリケーションとは異なる部分があります。一般的に設置型のアプリケーションへアクセスする場合は、アプリケーションが参照しているデータベース、具体的にはOracle、MySQL、SQLServer、PostgreSQL などのRDBMSからからCSV形式などのファイルに出力したり、直接データベースにODBC、JDBC、ADO.NETといったデータベース接続の標準規格でアクセスを行ったりすることでデータ連携が可能です。
しかし、SaaSの場合は直接データベースに外部からアクセスできないため、SaaSを運営するサービス事業者から提供されているWeb APIを通じてデータ連携を行います。Web APIはとても便利ですが、SaaSごとに異なるAPI仕様が発生してしまう可能性があり、JDBCやODBCのような業界標準ができていないという課題もあるのです。
API連携、活用までの3つの課題
そんなAPIですが、すぐに自社の環境に適用して大きな効果が得られるかというと、実はそう簡単な話ではありません。APIを運用するには多くの手間と時間がかかるものなのです。
ほかの企業が提供するAPIを利用するためには、連携するためのサーバーを新たに用意する、相手サービスの認証に合わせた形で証明書などを準備するなど、使い始めるまでに手間と時間がかかります。また、実際のサービスに組み込むべく接続のためのプログラムを作成することも必要です。このプログラム作成には、RDBMSからSQLでデータを取得するような仕組みとは異なり、例えばWeb APIではRESTと呼ばれるアーキテクチャスタイルを理解し、そのスタイルに適したプログラム作成の技術が求められます。
さらに、接続先の仕様に基づいて作成されたAPIを利用するため、定期的に仕様変更も含めた機能改修へ対応していく必要があり、APIに関する運用管理も求められます。実は上旬的な規約であるように語られるREST APIも、実際には単なる技術スタイルの総称であり、標準化には至っていないということの理解も必要です。その結果、API連携において属人化してしまうリスクも付きまとっているのです。
活用するならAPIをラップして使えるソリューションが理想的
API活用における課題を解消する策として有効なのは、事前準備や機能改修などへの対応も含めた、APIにまつわる運用管理の手間が減らせる環境づくり。そのためには、各社から提供されるAPIの仕様に合わせて個別対応を行うのではなく、APIを別の仕組みにて吸収したうえで負担なく利用できるような仕組みが理想的です。つまり、APIそのものはマスクした形で簡単に情報が呼び出せるといった仕組みがあると重宝します。
サービスごとを柔軟に連携することで自社の機能が簡単に拡張できる夢のようなAPIだが、その活用に際してはしっかりとした環境づくりが必要です。無計画にAPIを使うのではなく、初期の契約から保守まで含めた形での運用を意識しながら、API運用の手間を解消するための策として、APIの運用が吸収できるようなソリューションの導入を検討してみてはいかがでしょうか。
後悔しない!APIの活用について、
こちらのホワイトペーパーで詳しく解説しています。
ソーシャルもやってます!