Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

REST APIについて徹底解説


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20211007132206p:plain

おはようございます。Shotaです。

今回はDjangoAPIの一つ「REST API」について詳細に解説していこうと思います。



API(Application Programming Interface)」とは

REST APIについて言及する前に、APIについて説明する必要がありますAPIとは、アプリケーション同士をつなげる機能です。言い換えれば、「決まった方法でアクセスすれば決まった結果を返してくれるもの」です。

例えば、郵便番号を取得する時にURLに組み込んで入力すると、住所を決まった形で出力してくれます。一般的にはJSON形式で結果を返してくれます。

WEBサービスで使われるAPIの流れは以下の通りです。

①自分のアプリから、他のアプリへリクエストする


②他のアプリは、データをレスポンスで返す


世の中で使われているAPIは主に以下のようなものが挙げられます。


具体例1:ニュースAPI

ニュースAPIでできることは主に以下の通りです。

  • ①特定のキーワードを含むニュース一覧の取得

    ②特定のニュースソースのニュース一覧を取得

特定のキーワードでニュースを取得することで、自分だけのニュースサイトを作れます。


具体例2:YouTube API

YouTube APIとは、YouTube動画を取得できるAPIです。(正式名称はYouTube Data API)

YouTube APIでできることは以下の通りです。

  • ①特定のキーワードを含めた動画一覧を検索する

    ②特定のチャンネルの動画一覧を取得する

    ③自分の動画の統計情報を取得する

YouTubeで特定のキーワードを含めた動画を検索して、それについての動画サイトを構築できます。


REST APIとは?

f:id:ShotaNukumizu_1000:20211112054906p:plain

REST APIの前に、そもそも「REST」について詳細に解説します。

これは、「シンプルなWebシステムの設計思想」です。(いわゆるプログラミングにおける鉄則の一つ)

「REST」は、REpresentational State Transferの略です。

  • Representational…具体化された
  • State...状態の
  • Transfer...転送

言い換えれば、「具体的に状態を定義した情報のやり取り」のような意味になります。

これについて「RESTの4原則」があり、これを満たすシステムを「RESTfulなシステム」と呼んでいます。


RESTの4原則

このRESTの四原則は、主に以下の4つから成り立っています。

  • ①統一インターフェース

    ②アドレス可能性

    ③接続性

    ④ステートレス性

それぞれ順番に解説していきます。


統一インターフェース

統一インターフェースとは、予め定義・共有された方法でやり取りすることを意味します。

例えば、Webの場合、

  • 😀「GET・`POST等のHTTPメソッドでやり取りするよ!」
  • 😀「やり取りするデータはjson形式にしよう!」

このようなものになります。


アドレス可能性

アドレス可読性とは、すべての情報が同じであるURI(識別子)を持っていて、提供する情報をURIで表現できることです。

このURLはUniformed Resource Identifierの略で、Webの場合は通常URLとして与えられます。


接続性

接続性は、やり取りされる情報にはハイパーリンクを含められるという性質です。

一つのリンクから別の情報にリンクできて、円滑に情報を連携できます。


ステートレス性

これは簡単に言えば、RESTでは「やり取りが一回ごとに完結する」というように理解できます。

これは、前のやり取りの結果に影響を受けないのでシンプルな設計にできるメリットがあります。


まとめ

今回の記事では、REST APIAPIについて詳細に解説しました。

今回の記事はこれで以上です。

【参考サイト・参考記事】

REST APIとは?ざっくりと理解してみる【初心者向け】 - Wiz テックブログ (012grp.co.jp)

【簡単に】REST APIとは?初心者もわかりやすく解説 (tech-parrot.com)

APIとは?初心者向けに分かりやすく解説します。 (sint.co.jp)