Kaigai Blog living abroad in my twenties

【僕の学習ノート】APIとは?分かりやすく解説

Infotech Networking

こんにちは、なおやです。

今日は、Courseraというプラットフォームで、Metaの社員さんたちから授業を受けました。

そこで得た学びが、下記のツイートです。

今回は、これを掘り下げて解説していきます。

この記事の信憑性

この記事は、Courseの授業を受けて、学び、理解したことを基に、僕なりの言葉と解釈で分かりやすく解説しています。まあ簡単にいうと、僕が学んだことのアウトプットノートです。※ 注意:僕はまだ日々学習している段階です。解説していることに間違いがある可能性も否定できません。何か間違いを見つけて下さった方は、このWebサイトの向上のと僕の学習の為に、教えてください🙏
» Courseraという素晴らしいプラットフォームはこちら (授業は全て英語です)

【僕の学習ノート】APIとは?分かりやすく解説

【僕の学習ノート】APIとは?分かりやすく解説
API (Application Programming Interface) とは、あるソフトウェアなどが持つ機能やデータを別のアプリケーション上でも利用できるように繋ぐ仕組みのことです。

ちなみにインターフェースとは、2つのものを仲介するというような意味があり、私たちがよく使うUSBなどもインターフェースと言えます。

簡単に言うと、APIとはレストランで言うウェイトレスのような役割です。ウェイトレスの仕事は、お客さんから注文を貰ってそれを厨房に伝え、厨房からお客さんの所に料理を運ぶことですよね?APIとは、この厨房とお客さんを繋ぐ役割のような感じです。

例えば、僕のWebサイトにはTwitterが埋め込まれています。なぜ埋め込むことが出来ているのでしょうか?僕は、Twitterの開発なんてしてないのに。それは、僕のWebサイトとTwitterの間をAPIが繋いでくれているからです。

正確に言うとAPIとは、2つのソフトウェアを繋げる為の一連のプロトコルや定義のことで、別のアプリケーションなどの機能やデータにアクセスして自分のアプリケーションで使う方法を教えてくれます。

一般的によく使われるAPI 3選(この記事の目次)

一つずつ解説します。

Browser API とは?

Browser API とは?
Browser API とは、Webブラウザに組み込まれているAPIのことで、複雑な機能を簡素化してくれたり、高度な機能を構築する為の簡単な構文を提供してくれたりします。

そこで今回は、最も一般的な「Browser API」を6つご紹介します。

DOM (Document Object Model) API とは?

DOM (Document Object Model) API とは?
DOM API とは、Webブラウザで読み込んだHTMLとCSSの文書を操作する為のAPIです。

つまりは、WebページとJavascriptなどのプログラミング言語を繋ぐ役割をしており、JavascriptからHTMLのこの要素 (ノード) に「こういうことをさせたい」と命令をすることを可能にしてくれます。

» DOMについておすすめの記事はこちら

Geolocation API

Geolocation API
Geolocation API とは、ユーザーの位置情報を取得する為のAPIです。またこれを使用すると、ユーザーが望む場合のみ、自分の位置情報をWebアプリケーションに提供することが出来ます。

const x = document.getElementById("demo");

function getLocation() {
  try {
    navigator.geolocation.getCurrentPosition(showPosition);
  } catch {
    x.innerHTML = err;
  }
}

function showPosition(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude + 
  "
Longitude: " + position.coords.longitude; }

ちなみに、緯度と経度を取得する為のJavascriptのコードはこんな感じになります。

Fetch API

Fetch API
Fetch API とは、サーバーからデータを取得する為のAPIです。つまりは、Fetch APIを使うことで、Webサーバーに対してHTTPリクエストを行うことが出来ます。

また、fetch()メソッドも提供しており、非同期通信でHTTPリクエストを発行し、そのHTTPレスポンスを取得することが出来ます。

» HTTPについておすすめの記事はこちら

Canvas API

Canvas API
Canvas API では、主に2DのグラフィックをHTMLとJavaScriptを用いて描く方法を提供します。

» Canvas API を使った具体的な例はこちら

History API

History API
History APIでは、履歴スタック (ユーザが訪れたページなどをブラウザのウィンドやタブごとに管理するもの) を操作する方法を提供します。

例えば、「history.back(); 」というメソッドを使うと、前のページに戻れたりします。

» History APIを使った具体的な例はこちら (英語です)

Web Storage API

Web Storage API
Web Storage API では、クライアント側でのデータ保持を提供します。

» Web Storage APIを使った具体的な例はこちら (英語です)

RESTful API とは?

RESTful API とは?
RESTful API とは、RESTというルールを用いて作ったAPIのことを言います。

では、RESTとはなんでしょうか?

RESTとは、Web上のリソース(画像、ファイル、HTMLなど)にアクセスする際の基本的な考え方を提示しており、4つの原則で成り立っています。

統一インターフェース (Uniform Interface) とは?

統一インターフェース (Uniform Interface) とは?
統一インターフェースでは、情報をやり取りする方法を統一しています。

  • Webリソースへのアクセスは、HTTPメソッドを使用する。
  • やり取りするデータの形式がJSONかXMLであること

主に上記の2つが規定されています。

» HTTPメソッドについておすすめの記事はこちら

アドレス可能性 (Addressability) とは?

アドレス可能性 (Addressability) とは?
アドレス可能性とは、URLを使うことでそれぞれのWebリソースを識別し、簡単にアクセスできるようにするということです。

» URLについておすすめの記事はこちら

接続性 (Connectability) とは?

接続性 (Connectability) とは?
接続性とは、やり取りされる情報にはハイパーリンクを含めることができ、簡単に他のWebページやサイトに飛ぶことが出来るというものです。

» ハイパーリンクについておすすめの記事はこちら

ステートレス性(Stateless) とは?

ステートレス性(Stateless) とは?
ステートレス性とは、ステート (状態) がレス (ない) という意味です。つまりは、「やり取りが1回ごとに完結する」ということを表しています。

もっというと、サーバーはユーザーの過去の情報などは保持せずに、同じリクエストに対しては、誰にでも同じ情報を返すということです。(過去のやり取りには左右されず、同じ入力に対しては同じ出力を返す)

まとめ

つまり「RESTful API」とは、2 つのコンピュータシステムがインターネットを介して安全に情報を交換するために使用するAPIです。

Sensor-Based API とは?

Sensor-Based API とは?
Sensor-Based APIとは、モノのインターネット (IoT) が使用しているAPIです。

LoTでは、世の中に存在するあらゆるモノにセンサーをつけ、それぞれのセンサーがAPIを介して通信することで、データを蓄積したり、処理を返したりすることが出来ます。

以上です!