APIってよく聞くけどいったいなんなの?

先日Twitterがこれまで無料で提供されてきたTwitter API(v2、v1.1とも)のサポートを2月9日をもって終了し、代わりに有償版の提供をする予定だと同社の開発者アカウントを通じて発表したことで耳にした方も多いと思う『API』正式名称をアプリケーション・プログラミング・インタフェース (Application Programming Interface) といいます。
今回はそんなAPIとは何だ?という事を軽くまとめてみようと思います。

●APIとは?

まずAPIとは先ほども書きましたが「アプリケーション・プログラミング・インタフェース」のことで「インターフェース」は何かの境界や接点なんかを表します。
つまり「アプリケーション」と「プログラム」を繋げるものと言えます。つまり、異なるソフトウェアやサービス間で認証機能を共有したり、チャット機能を共有したり、片方から数値データを取り込み、別のプログラムでそのデータを解析したりできるようになるのです。

一口にAPIといっても実は種類があり、WindowsOS用のアプリケーション開発において使われる「WindowsAPI」やHTML5から登場したブラウザにデータを保存できるWeb Storageは「HTML5 API」だったりします。
そんな中で「API」といえば基本は「WebAPI」のことを指すでしょう。

WebAPIの特徴は
・HTTP(HTTPS)通信を利用している
・通信は「リクエスト」と「レスポンス」で成り立つ
・「リクエスト」は、API提供者の決め事に沿って送る必要がある
・「レスポンス」も、API提供者によって決められたフォーマットや内容で返ってくる
大きなところではこのあたりになります。

●WebAPIをつかうメリットとは

WebAPIを利用するにあたって大きなメリットは「効率的・セキュリティ向上・開発コスト削減」の3つだと言えるでしょう。

●効率化
通常はソフトを開発するときはゼロベースでプログラムを組む必要がありますが、APIを利用するとAPIサービス側が作成した機能をそのまま活用できるため、利用者はサービス開発の効率化、スピード化を実現できます。
例えば、天気を自動で知らせてくれるチャットボットを作りたい場合はゼロからプログラミングをするのではなく「Yahoo天気」「Open Weather Map」などにあるAPIを使うことで短時間で作り上げることができます。

●セキュリティ向上
例えば利用者の会員情報等を管理する場合、自社で独自に登録画面を作成するとなると、セキュリティを含めた機能についても一から構築しなくてはなりませんがTwitter,Facebook,Googleを使うときは自身のアカウントにログインする必要がありますよね、その際に連携させたいサービスの「API」を導入すると「API」を利用させたアカウントのログインを行うことができます。
独自にセキュリティを高める開発をするより、有名企業のセキュリティレベルが高いAPIサービスを利用する方が強固になるケースもありユーザにも安心感を与える場合があります。

●開発コスト削減
上記2つを効率よく利用することで開発にかかる時間、金額を抑え低コストながらもクオリティのあるサービスを提供することにつながるのです。

APIを効率的に利用できれば、自社サービスの開発や拡大にとって大きな武器になります。
しかしその反面自社以外のものに引っ張られる障害や不具合の可能性もあるためAPIを利用することが正義ではありません、今回のTwitterのように急な有料化や利用そのものが停止してしまう場合もあります。
そこの見極めを行い効率よく便利なサービス開発の参考にしていただけたらと思います。