APIとは
APIとはApplication(アプリケーション)、Programming(プログラミング)、Interface(インターフェース)の略です。
意訳すると「ソフトウェアやサービス同士を繋ぐ仕組み」という意味です。
APIを使うとできること
APIを使うことで以下のことができます。
データのやり取り
別のシステムにデータを送ることや、受け取ることができます。
具体的な例を挙げると、天気予報のAPIです。
自分の位置情報を送ることで、その場所の天気情報を受け取っています。
機能の利用
別のソフトウェアの機能を自分のソフトウェアにも実装することができます。
具体的な例を挙げると、GoogleマップのAPIです。
APIを利用することで、自分で1からマップのシステムを作らなくてもGoogleマップの機能を取り入れることでGoogleマップの機能を実装することができます。
システムの連携
複数のシステムを組み合わせて独自のシステムを作ることができます。
具体的な例を挙げると、ネットショッピングサイトです。
商品のレビューデータを受け取るシステムや、SNSに共有するシステム、クレジットカードや電子決済をするシステムなど様々なAPIを組み合わせて作られています。
APIを使うメリット
システムの利便性が上がる
APIを利用することで、例えば、Googleマップを使えるようにすることや天気予報を取得すること、電子決済に対応することなど様々な機能を追加することができます。
開発期間の短縮
APIを利用することで、開発をする手間がかかりません。
保守・アップデートの手間が少ない
提供者がAPIの機能の改善やアップデートをするため保守やアップデートの手間がかかりません。
セキュリティの向上
システムへのログインにパスワードだけでなくSNSでの2段階認証をするAPIを使うなど外部の認証APIを利用することでシステムのセキュリティを向上させることができます。
APIのデメリット
API提供者に依存してしまう
提供元が仕様変更した場合は、それに合わせて変更しなくてはいけません。また、サービスが終了するとAPIの利用ができなくなる場合があります。
セキュリティ対策が必要
外部にデータを送信するので、データ漏洩や改ざんを防ぐためにセキュリティ対策が必要です。
利用コストがかかる
APIの中には有料のものもあるため、コストが増える可能性があります。
APIの仕組み
APIでは相手にリクエストを送信し、リクエストに応じてレスポンスを送信するという仕組みがあります。
Web APIという種類のAPIを例にして詳しく説明します。
Web APIでは、まず、自分から提供元のWebサービスにデータを送信するHTTPリクエストをAPI経由で送信します。
その後、リクエストを受けたWebサービスがAPI経由でHTTPレスポンスを自分に返します。
そのレスポンスを自分のシステム上に表示することでAPIを利用することができます。
APIの種類
APIには主に以下の5種類あります。
Web API
インターネットを通じてアクセスするAPIです。
特徴としては「HTTP」や「HTTPS」などでリクエストを送ることで、機能が利用できます。無料で利用できるものが多いですが、機能が制限されている場合もあります。
代表的なものはGoogleマップを使える「Google Maps Platform」やFacebookと連携できる「Facebook API」、Amazonの機能が使える[Amazon API]などがあります。
ネイティブAPI
OS(WindowsやMac、Androidなど)の機能にアクセスするためのAPIです。
特徴としてはOSのシステムファイルなどに最初から格納されています。そのため、Webからダウンロードせずに使うことができます。
代表的なものは「Windows API」、「Mac OS API」、「Android API」などがあります。
ライブラリAPI
プログラミング言語の関数やクラスをまとめたAPIです。
特徴としてはプログラミング言語の実行環境をインストールする際にライブラリAPIも一緒にインストールされています。また、「java.lang」や「math」など機能別にカテゴリー分けされています。
代表的なものは「Java SE API」、「Python Standard Library」などがあります。
ランタイムAPI
プログラム実行中(ランタイム)に動作の制御や、実行情報の取得などの実行環境を管理・操作するAPIです。
特徴としてはライブラリAPIと同様に、プログラミング言語の実行環境をインストール
する際に一緒にインストールされます。
代表的なものはJavaの「Runtime.exec()」、Pythonの「subprocess」などがあります。
データベースAPI
データベースにアクセスするためのAPIです。
特徴としては、データベースAPIを介して、DBMS(データベース管理システム)にリクエストを送ることで、データベース管理システムを操作できます。
代表的なものは、JavaのJDBC(Java Database Connectivity)、WindowsのODBC(Open Database Connectivity)などがあります。
おわりに

APIについて解説いたしました。
無料のプログラミングスクール「テクドリ」の卒業生のインタビュー動画を、インスタグラムほか公式SNSにて公開中!