システム開発知識 – APIとは –
APIとはアプリケーション・プログラミング・インターフェースの略で、ソフトウェアが互いにやり取りを行うのに使用するインターフェースの仕様です。
簡単にいうとソフトウェアの機能を他のソフトウェアと共有する仕組みです。
例えば、店舗紹介のページに地図を表示したいとします。そんな時にGoogleMapAPIを使用すれば、数行のコードでページ内にGoogleMapを埋め込むことができます。地図を一から作るのに比べると大幅に工数を短縮することができるとともに、よく使われるGoogleMapのデザインはユーザーが使いやすいものになるので、自分で地図を作るよりもユーザーフレンドリーになります。
APIを使うメリット
APIを使うメリットは様々あります。
開発スピードの向上
APIを使用することで開発スピードは格段に向上します。
画像投稿機能を要するウェブサービスを開発する上で悪質なユーザーが投稿する画像は制限したいと思います。しかし、AIを一から開発して画像認識を行うとなると多大な時間・コストを要します。
MicrosoftやGoogleなどの画像認識のAPIを利用すれば画像のURLを送るだけで、画像に問題がある可能性があるかどうかを判断してくれます。このようなAPIを使えば、自身で一からAIを作るよりも開発時間を短縮することができます。
セキュリティの向上
多くのECサイトでは支払い機能を必要とします。その時に一からカード情報管理・支払い機能を作っていては開発は年単位以上になるとともに高度なセキュリティが必要となります。そんな時もカード情報管理に長けたサービスのAPIを使用することで、短いコードでカード管理・支払い機能を導入することができます。
APIを利用することでメリットを受けるのは開発側だけではありません。ユーザー側でもその恩恵を受けることができます。
UX(ユーザーエクペリエンス)の向上
多くのウェブサービスでアカウントを作ってしまうとユーザーはパスワードやIDを忘れたりして、混乱をしてしまいます。
そんな時にGoogleやTwitterなどのAPIを利用することで、GoogleやTwitterのアカウント情報を利用してアカウントを作成することができます。ユーザーは多くのIDやパスワードを管理する必要がなくなります。
生産性向上
基幹システム内にデータを入力した際に、上長が内容を確認したり、別の従業員が次のアクションを必要としたりする場合があると思います。そんな時に毎回チャットアプリでメッセージを送って確認のお願いをするのは少し手間になってしまいます。APIを提供しているチャットアプリであれば、データ入力完了とともにチャットアプリで自動でメッセージを送信して、データ入力が完了したことを知らせることができます。
APIを公開するとどうなるか
ウェブサービスを提供する上でAPIを使うメリットはお分かり頂けたかと思います。それではAPI提供者にはどんなメリットやデメリットがあるのでしょうか。
1番のメリットはAPIエコノミーの形成にあります。
APIエコノミーとはAPIを公開することで他社サービスも活用して広がっていく経済圏のことを指します。
既に活用されているAPIエコノミーの代表例の一つは配車サービスであるUberです。
地図情報をGoogleMap、連絡手段をtwilio、決済機能をBraintreeとUberの中でも大きな機能を他企業のAPIによってカバーしています。
またUberはAPIを利用するだけでなく提供もしています。このAPIを利用すれば、簡単に配車リクエストボタンをアプリに追加することができ、ホテルやレストランの予約アプリと連携することで、一つのアプリ内でレストランの予約から帰りの配車までを完結することができます。これによりUberを利用したことないユーザーも予約アプリからの流入を見込めます。
またAPIを公開することによって予想していない業種や職種でAPIが使用されることで、自社では想定していないような新たなアイデアが生まれることもあり、オープンイノベーションへとつながっていきます。
API提供者の一番のデメリットには、APIの開発に時間がかかる点と言えます。特にAPIで情報を公開するなら、悪質なユーザーを相手にするという点も考えなければなりません。そこで通常以上にセキュリティを強化して、一人一人に暗号化用の公開鍵と秘密鍵を提供する必要あります。
そして、APIを提供する上ではAPIで提供する機能を開発・テスト、そしてユーザーに使い方を説明するドキュメントの配布、アクセスの増加を考えてインフラの再構成を行う必要があります。
APIファーストという考え方
近年普及してきたAPIファーストという考え方があります。
APIの設計を中心としたサービス構築手法です。
従来までサーバーサイドレンダリングと呼ばれ、サーバサイドでHTMLを生成してクライアントに返すのが通常でした。
サーバサイドレンダリング
しかしAPIベースのシステムであれば、クライアントサイドレンダリングというサーバから返却されたJSONなどのデータをJavaScriptで受け取り、JavaScriptがHTMLを操作して、ページを更新します。
クライアントサイドレンダリング
クライアントサイドレンダリングはサーバーサイドレンダリングに比べて、表示処理とサーバサイド側の処理が密接に繋がっていないため、デザインの細かな修正などでサーバー内のプログラムをデプロイする必要がなくなります。
何よりクライアントに返すデータがJSONであるため、ウェブブラウザだけでなく、スマートフォンやデスクトップのアプリケーションでもサーバサイドは同じコードを使用して、クライアントサイドだけの開発も可能です。
またAPIファーストなら、一つのクライアントサイドからいくつものサーバサイドにアクセスすることに可能でなります。その結果、モノリシックなシステムが脱却することができ、マイクロサービスでシステムを構築することができます。
まとめ
今回はAPIについての紹介をしました。
APIを利用すれば
・開発者の開発スピードが向上、セキュリティが向上
・ユーザーのUX向上、生産性向上
が期待できます。
またAPIを提供する立場になれば、APIエコノミーが形成されていき、自社ビジネスの拡大へとつながります。
近年ではAPIファーストという考え方が広がり、クライアントサイドレンダリングを取り入れる企業が増えました。クライアントサイドレンダリングによって、スマートフォンアプリの開発が進みやすく、システムのマイクロサービス化も可能となります。
中小企業をがっつりサポート!
当社では
など、企業のIT化のサポート・DX事業のサポートを行っています。
まずはお気軽にお問い合わせしてください。