まるノート

備忘録も兼ねて、様々なお役立ち情報をまとめています。

API とは何なのか?

はじめに

しょっちゅう耳にするけど当初はなかなか意味がわからなかったIT用語について、自分なりの理解をまとめた記事です。

今回は API についてです。ネットなどでググった場合、おそらくちゃんとした記事であればあるほど意味不明だと思います笑


API とは

一応記載しますが、APIとは Application Programming Interface の略です。一旦はこの言葉は忘れましょう。

ざっくりいうとAPI は「外部から利用可能な便利な機能」です。

ここでいう外部とは、主にブラウザやターミナルです。
ただし、直接呼び出しているのは裏で動いているプログラムです。


「Interface」とは仲介、橋渡し、という意味です。
つまり API を利用するためのツールなどから見るとプログラムが仲介しているというイメージなので「Programming Interface」と呼ばれています。
しかし実は直接呼び出しているのは例えば Javascript などのプログラムです。


WebAPI とそれ以外のAPI

API の種類は大きく2つに分けられます。WebAPI とそれ以外、です。

WebAPI

基本的にブラウザを利用する類の API はWebAPIです 例えば、Google MapsのAPIを利用してWebサイトに最新のマップを表示したり、AmazonのAPIを利用すれば、自身のWebサイトで最新の売れ筋や価格の表示などが可能です。

これらの API を利用するために裏で動いているのは Javascript や Python といったプログラムです。
プログラム ≒ Interface という意味がなんとなくわかってきたのではないでしょうか。


WebAPI 以外の API

こちらは代表的な例としては、Windows といった OS が標準的に提供している API が挙げられます。
例えばメッセージボックスなどです。こちらも、プログラムから呼び出しを行います。

また、以下の例にあるsleep()関数のような関数も WindowsAPI のひとつです。

#include <stdio.h>
#include <windows.h>
int main() {
   printf("スタート!\n");

   /* 3秒後に次の行へ進む */
   Sleep(1000 * 3);
   printf("3秒経過しました!\n");
}


WebAPI について

ここで WebAPI についてもう少し説明します。
まず前提知識としてHTTP通信について触れておきます。

HTTP通信
インターネット通信の流れとして通常Webサイトを閲覧する際、
クライアントからHTTPリクエストが発行され、それを受けてサーバーからHTTPレスポンスが送信されることで、普段目にしているようなWebサイトを閲覧できますが、
この仕組の定義をプロコトルと呼び通常ネットを閲覧している際に利用しているのはHTTPというプロコトルです。


上記のように WebAPI を利用する場合も、サーバーに対してリクエストを行うのですが、WebAPI を利用する場合は GET(取得) POST(新規作成)とった命令をプログラムから行っています。

そして何に対してという情報としてWebAPI を提供する URL を指定します。


近年の WebAPI は主に「REST API」と呼ばれる API が採用されています。 ざっくりと特徴をまとめると以下の通りです。

 ①GET・POST・PUT・DELETE等の決まった方法でやりとりをする
 ②提供する情報をURLで識別できる
 ③情報にはハイパーリンクを含めることができる
 ④やりとりが1回ごとに完結する(セッション管理などが不要)


なお、WebAPIで取得したデータはほとんどが JSON形式で帰ってきます。何年か前はXML形式だったり、REST APIではなくSOAP通信が採用されていました。


おわりに

以上、そもそも API とは何なのかといった簡単な説明になります。
詳細な部分はかなり割愛しましたが、WebAPIについて特に REST API の説明は他のサイトでも詳しいものがたくさんあります。
合わせて、実際にWebAPI を利用するためには具体的にどのようなプログラムを記述するのか、といったことも調べてご覧頂ければより理解が深まるのではないかと思います。


あとは機会があれば記事にするかもしれませんが、簡単なJSONデータを返すだけのWebAPIであれば自分で作れるので、試してみるのも良いと思います。