PR

REST APIとは何か?初心者向けにわかりやすく1分で解説

IT-Skills

REST API(れすとえーぴーあい)はWebAPIの1つの形態です。WebAPIというのは、インターネットを通じてアクセス可能なAPI全般を指す用語ですが、その中でも特にREST(Representational State Transfer)というアーキテクチャスタイルに従ったAPIをREST APIと呼びます。

WebAPI
├── RestAPI ←今回解説する対象
├── SOAP
├── GraphQL
└── gRPC

参考 WebAPIとは?(APIとは?)

結論を超ザックリいえば、REST APIは「リソース」に対して「HTTPプロトコル」を使って「操作」する方法で、各リクエストが独立して処理されるAPIと言えます。

このページではそもそもWebAPIって何?というところをおさらいしつつ、REST APIの概念を1からわかりやすくご説明します。

スポンサーリンク

前提:APIとは何か?

API(エーピーアイ)は「Application Programming Interface」の略で、異なるソフトウェア同士が情報をやり取りするためのルールや仕組みを提供するものです。APIはその名の通りアプリケーションが他のアプリケーションの機能を使えるようにする「窓口」のような役割を果たします。

例えばスマートフォンの天気アプリは、気象データを提供するサービス(例えば、気象庁や気象会社)のAPIを使って最新の天気情報を取得します。(APIという「窓口」に知りたい気象情報を問い合わせ→回答を受け取ってくる。)このように、APIはアプリやサービスが他のアプリやサービスからデータを取得したり、機能を利用したりするために使われます。

また、その中でも特にインターネットを介して情報の交換が行われるものをWebAPIと呼びます。

API WebAPI 違い
図1:APIとWebAPIの違い

REST APIとは

REST APIはWebAPIの1種。その中でも特に「REST」という設計原則に従ったAPIです。

WebAPI
├── RestAPI ←今回解説する対象
├── SOAP
├── GraphQL
└── gRPC

RESTは「Representational State Transfer」の略で、以下の4点が大きなポイントです。ザックリいえば、モノを「リソース」として扱い、そのリソースに対する操作を「HTTP」でリクエスト。これらのリクエストは単発で行われるということ。

ポイント説明
リソース指向データや機能をリソースとして扱い、それぞれに固有のURLが割り当てられる。
HTTPプロトコルインターネット通信で使われる標準的なプロトコルを使用。
HTTPメソッドデータの操作をGET、POST、PUT、DELETEなどの標準的なHTTPメソッドで行う。
ステートレス各リクエストは独立して処理され、サーバーはクライアントの状態を保持しない。

それぞれのポイントの意味を1つずつ詳しく説明していきます。

REST APIの特徴1:リソース指向

リソース指向とは、APIがデータや機能を具体的な「モノ」として扱う方法です。

リソース指向を日常生活で例えると、「図書館で本を管理する方法」と考えるとわかりやすいです。

図書館の本、これがリソースです。それぞれの本には固有の識別番号(例えばバーコード)があり、この番号を使って本を特定することができます。このときのバーコードがURLに当たります。このURLと後述する「HTTPメソッド」を組み合わせて、「村上春樹の本」を「Get(HTTPメソッド)」して!というような形でリクエストするイメージがリソース指向。

対してリソース指向ではないのは、図書館の利用者が特定の目的や手続きを実行するためにリクエストを行うようなイメージになります。この方式では本自体をリソースとして扱うのではなく、利用者の目的や手続きに基づいて操作が行われます。つまり「村上春樹の本を取得して!」というように、モノとそれに対する操作をひとくくりにしたもの(=手続き・アクション)がリソース指向ではない例。

REST APIはリソース(例えば、ユーザーや商品)を操作するためのものですが、リソース指向ではないAPIは「特定の手続きを実行するためのもの」と分けて考えると理解しやすいでしょう。

REST APIの特徴2:HTTPプロトコルを使用

REST APIは、HTTPプロトコルを使用します。

参考 HTTPとは?

HTTPプロトコルとは、簡単に説明すると「インターネットで情報をやり取りするためのルール」です。例えば私たちがWebサイトを見るとき、ブラウザはこのルールを使ってサーバーからページを取得し画面上にページ情報を表示します。REST APIも同じルールを使って、アプリやサービスがデータをやり取りするということです。

REST APIの特徴3:HTTPメソッドでリソースに対する処理を表す

HTTPメソッドは、インターネットでデータをやり取りする際に使用する特定の操作方法を指します。REST APIでは、主に4つのHTTPメソッド(GET、POST、PUT、DELETE)が使用され、これらを使って「リソース」の作成・取得・更新・削除を行います。

REST APIの特徴4:ステートレス

ステートレスとは、各リクエストが独立して処理され、サーバーがクライアントの状態を記憶しないことを指します。つまり、1つのリクエストが他のリクエストに依存しないということです。

参考 クライアントサーバシステムとは?

ファストフード店で食べ物を注文するとき、店員はあなたの過去の注文を覚えていません。あなたが来るたびに、注文を初めからやり直します。例えば、今日ハンバーガーを注文しても、明日また来たときに店員はそれを覚えていません。これは、各注文(リクエスト)が独立しているためです。

一方ステートフルの場合、昨日「ハンバーガーを1つください」と注文していたとしたら、今日来たときに「昨日と同じものをください」と言うだけで、店員は同じハンバーガーを出してくれます。また、今日は「追加でフライドポテトもください」と言えば、店員は昨日の注文にフライドポテトを追加します。

ザックリいえば、リクエストを投げる側と受ける側に、どれぐらい密接な関係があるか?というのが違い。

  1. ステートレス
    • 関連無し。毎回初対面の関係性。
  2. ステートフル
    • 密接に関連する。両者が手を握っているイメージ。

まとめ REST APIとは?

REST APIは、インターネット上の図書館のようなもの。

  • リソース:本や雑誌のように、データがリソースとして扱われます。例えば、ユーザー情報や商品情報。
  • URL:リソースにはそれぞれの「住所(URL)」があり、これを使ってアクセス。
  • 操作:GETで本を借りる(取得)、POSTで新しい本を追加する(作成)、PUTで本の情報を更新する(更新)、DELETEで本を削除する(削除)。
  • ステートレス:各リクエスト(本の操作)は独立して行われ、図書館(サーバー)は前回の操作を覚えていません。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました