APIとは?プログラミング初心者向けに詳しく解説
IT業界に所属していたり、WEBに関わる業務に就いているとAPIという用語を耳にします。しかし、APIは専門性が高い上に抽象的な概念ですので、なかなか理解できないといった声が散見されます。
ただし、APIは、その利便性の高さから現実社会にも大きな影響を与えています。そのため、業務上でAPIと関わる場面も増えることが予測されます。とくに、WEBなどに関係する業務をしている場合は、しっかりとAPIについて理解する必要があります。
APIとは?
API(Application Programming Interface)とは、特定のアプリケーションやソフトウェアがもつ機能を別のプログラム上やシステム環境でも利用する仕組みのことです。
わかりやすくいうと、APIがコンセントの役割を果たして、2つのソフトウェアを連結させることで、それぞれのソフトウェアが有する機能を共有して利用できるようになるということです。
例えば、Google社はGoogle MapのAPIを公開しています。このAPIを用いることで、WEBサイトの運営者がGoogle Mapを自サイト上に表示させたり、Google Mapの機能を利用することが可能となります。
APIを提供する側にとっては、他の開発者が自分たちのサービスを利用することで、ビジネスチャンスを拡大できます。また、APIを利用する側は、簡単に機能を追加できるため、システムの開発効率が向上します。
API連携の仕組み
APIを通じて複数のシステムやプログラムを統合することをAPI連携といい、消費者を満足させる質の高いアプリやソフトウェアの開発につながっています。
そんなAPI連携の仕組みを理解するためには、リクエストとレスポンス、APIキーについて把握する必要があります。
リクエストとレスポンスについて
APIでソフトウェアを連携したら、共有された機能を利用していくことになります。そして、この工程をリクエストやレスポンスと表現します。
構造としては、APIはコンセントのような役割を担って、APIを提供する側のシステムと利用する側のシステムを接続します。そして、APIを通じて、利用側が呼び出し(リクエスト)して、データを取得(レスポンス)するわけです。
API連携におけるリクエストには、HTTPメソッド(取得や発信などを伝えるプログラム)、APIキーなどの認証情報が含まれます。イメージとしては、利用側がAPIを介して、提供側に注文するといったものです。
一方、API連携におけるレスポンスは、提供する側が利用する側にデータを返すことです。レスポンスには、提供内容やHTTPステータスコード (リクエストが正常に処理されたかどうかを示す)、提供する側の送信情報などが含まれます。
そして、APIを利用する側は、受け取ったレスポンスを必要に応じて活用します。
APIキーとは
APIキーとは、APIを利用する際に必要な認証情報のことです。APIの提供側が利用側に発行するテキストデータを用いて、提供側が利用側を識別します。要するに、提供する側が特定の利用者にデータを提供するためにAPIキーが使われます。
そのため、APIキーの利用には注意が必要であり、第三者にAPIキーの情報を漏らしてはいけません。APIキーの内容が第三者に漏れると不正アクセスにつながりますので注意してください。
APIの種類
APIの提供方法や利用方法は多種多様ですが、大きく分類すると下記の3つが挙げられます。
- WEB API
- ネイティブAPI
- ランタイムAPI
WEB APIとは
WEB APIとは、WEB上で情報やプログラムを公開するAPIのことです。HTTPプロトコルを使用してAPIを提供し、複数のアプリケーションやソフトウェアを統合できます。特定のプログラミング言語の仕様に影響されずに汎用的に利用可能な点が特徴です。また、開発環境によって、提供方法を柔軟に選べます。
代表的なWEB APIとしては、GoogleやFacebookなどのサービスがあり、他のアプリケーションやサービスからデータを取得して、活用できます。
ネイティブAPIとは
ネイティブAPI(Native API)とは、パソコンに既存システムとしてインストールされているOS(オペレーティングシステム)が提供するAPIのことです。例えば、マイクロソフト社のWindows APIは、Windowsがインストールされたコンピュータ上で利用でき、Windowsに含まれる機能や情報を利用できます。
そのほかに、OSが提供するAPIにはアプリケーション開発のためのAPIが含まれていることもあり、さまざまな開発に活かせます。
ランタイムAPIとは
ランタイムAPI(Runtime API)とは、プログラム環境を提供するAPIのことです。例えば、プログラミング言語として人気であるJavaは、アプリケーション開発に必要な機能をAPIとして公開しています。そのため、Javaを利用したシステム開発を効率的におこなう場合、APIの知識が必要です。
APIのメリットとデメリット【利用側】
APIを利用する上で、それぞれメリットと注意点があります
APIを利用する側のメリット
APIを利用する側の利点は以下のとおりです。
- 開発で発生するリソースを削減
- セキュリティレベルの向上
- 最新情報を取得
開発で発生するリソースを削減
APIを利用することで、開発コストを抑えることができます。一般的に外部が用意するAPIは、ある程度完成した状態で提供されますので、開発スピードの向上にもつながります。API部分の開発リソースを削減できて、かつ消費者のニーズに合致したサービスを迅速に提供できます。
最新情報を取得
一度APIで連携しておくと、連携先のデータが変更された際に、データ変更が自動で反映されます。API導入時に開発コストやリソースをカットできるだけでなく、ランディングコストやシステムを運用するための手間を省くことが可能です。その上、最新情報といった良質なコンテンツを自動で取得できます。
セキュリティレベルの向上
APIを利用することにより、一定以上のセキュリティレベルを要するサービスを提供する際に、セキュリティレベルを担保された状態のプログラムを利用できます。
例えば、現在ではECサイトなどにログインする際に、Googleアカウントといったものの利用が一般に普及しています。このシステムにもAPIが利用されているのですが、ECサイトの運用者としては、Google社のような大手企業に開発されたログイン認証機能を使えますのでサイトの安全面を確保できます。
APIを利用する側の注意点
APIの利用には、さまざまな利点があります。しかし、その一方で、下記のようにAPIを利用するリスクがあります。
- アップデートの停止
- 不具合の発生時に対応不可
- 専門知識が必要
アップデートの停止
APIは提供者が開発するものですので、その開発自体が停止された場合にアップデートされなくなることがあります。仮にアップデートが停止したとしても、近々は問題が起きにくいことが予測されます。しかし、技術革新のスピード感を考慮すると、ゆくゆくは利用しているAPIの代用策を検討する必要があります。
不具合の発生時に対応不可
開発者側のサーバーやAPIに不具合が発生した場合、一時的にAPIが利用できなくなる、または利用に制限がかかるケースがあります。不具合を解消しようにも、開発サイドのサーバーなどに問題があるとなると、自社で問題解決することは極めて困難です。こうした場合は、現行のAPIの代用を早急に探す必要性が発生します。
専門知識が必要
そもそも、APIを利用するとなると、一定のプログラミングや専門知識が求められます。社内にこうした経験値を持つ従業員がいない場合、新たに従業員を雇用するか、開発会社に外注して、API連携のための作業を依頼する必要があります。
APIのメリットとデメリット【提供側】
APIを提供する際に知っておくべき利点と注意点があります。それぞれしっかり把握して、APIの提供や開発作業を進めてください。
APIを提供する側のメリット
APIを提供する側のメリットには、下記のようなものがあります。
- 開発システムの価値向上
- 収益確保
- イノベーション促進
開発システムの価値向上
開発したシステムや情報をAPIとして提供することで、関連サービスとの連携が進み、開発システム自体の価値が向上することがあります。提供したAPIが利用されると、利用者側の特有の機能が加わるケースがありますので、付加価値を見出せる結果となります。
収益確保
一般的には、APIの基本システムは無償で貸与されますが、ワンランク上の作り込まれたシステムを有償で提供するケースが間々見られます。有償で提供するAPIに需要があれば、収益の確保につながることがあります。
イノベーション促進
開発したシステムや情報を公開することで、外部の利用者から使用感や意見を収集できます。なかには、自社では生まれないアイデアが提供されるケースもあります。そのため、システムのイノベーションを促進させて、質の高いサービスやシステム開発につながります。
APIを提供する側の注意点
その一方で、APIを提供する側のリスクとしては、開発コストと開発工数がかかる点が挙げられます。
開発コストと工数
APIを開発するとなると、開発コストと相応の期間がかかります。さらに、システムの運用フェーズに入ると、周囲の環境に合わせてAPIをアップデートする必要があります。このほか、脆弱性が見つかった際に対応を迫られるといったケースも見受けられます。
APIの使い方【利用側】
APIを利用して、サービスを受けるための一般的な手順は下記のとおりです。
1.APIキーの取得
2.APIを呼び出す
3.APIからレスポンスの受け取る
本項目で紹介する手順は、あくまで一般的なAPIを利用するまでの流れです。実際は、サービスにより異なりますので、必ず、提供元に確認したのちに作業を進めてください。
1.APIキーの取得
APIを利用するために、提供側が提示する申込手順に従ってAPIキーを取得します。
APIキーは、重要な認証情報であるため、第三者へ漏洩をしないなどのセキュリティ面に配慮する必要があります。また、提供社によっては多数のAPIを公開していたり、料金体系が異なるケースもあるので、しっかりと説明文を確認して、目的のAPIキーを取得してください。
2.APIを呼び出す
APIキーを取得したら、接続してデータを呼び出します。APIキーは、URLタイプのものや、ランダム的に生成された文字列で構成されたものなど、いろいろな種類があります。いずれにせよ、提供側の説明に従って作業を進めてください。
3.APIからレスポンスの受け取る
APIへリクエストを送信すると、データがレスポンスで返されます。レスポンスを受け取り、目的に沿って利用をします。
APIが利用されている身近な実例
APIが提供されている代表的なサービスとしては、下記のようなものがあります。
- Google Map API
- Amazon API
- Facebook API
- Twitter API
- LINE API
- YouTube API
Google Map API
Google Maps APIを利用することで、Google Mapの機能を使用できるようになります。地図情報では、位置情報を取得して最短経路を表示するといった利便性が高いシステムを採用していているのですが、それをカスタマイズして利用できます。
なお、Google MapのAPIは、プログラミング言語であるJava Scriptによって動作しています。
Amazon API
引用:Amazon MWS
Amazon APIでは、出品者向けやアフィリエイター向けにシステムを提供しています。商品検索や出品情報の管理のほか、価格設定など多様なシステムのAPIが公開されており、ECサイトの開発に役立つシステムや情報が多く、幅広い開発者に利用されています。
Facebook API
引用:グラフAPI
Facebook APIとしては、画像のアップロードやストーリー投稿、広告管理などのシステムがAPIとして公開されています。このほかにも、投稿内容の画像データやテキストを取得するといったこともできます。
Facebook APIの場合は、PHPなどのHTTPライブラリの活用ができるプログラミング言語で利用可能です。
Twitter API
引用:Twitter API
Twitter APIを利用すると、外部ツールを利用して自分のアカウント上でツイート投稿したり、リツイートといった操作ができます。さらに、埋め込んだタイムラインのカスタマイズといったことが可能となります。
LINE API
LINEのMessaging APIを利用すると、LINE公式アカウント上にBOT(ボット)を生成できます。さらに、そのBOT通じて、アカウント登録者にメッセージを送信できるなどコミュニケーションを取ることもできます。
YouTube API
YouTube APIでは、動画配信者向けのシステムを提供しています。具体的には、アップロードした動画のアクセス情報やチャンネル全体の分析情報、字幕や再生リストの追加といった便利な機能が揃っています。
APIのよくある質問
APIに関する、よくある質問をFAQ形式でまとめています。
Q:APIで何ができる?
Answer)APIを用いることで、他のソフトウェアやアプリケーションの機能を自身が有するシステムに実装して利用できます。
Q:どのように利用すればよいか?
Answer)APIを利用するには、提供側が掲載した説明文を確認し、APIキーを取得してAPIを呼び出すプログラムを作成します。API呼び出しには、HTTPメソッドやパラメーターなど、必要な情報が存在します。
まとめ