見出し画像

【Webアプリ開発】REST API入門③ REST APIの利用方法

本記事は下記の記事の続きです。

REST APIを利用することでリソースに対してCRUD操作を行うことができますが、利用する方法はいろいろとあります。

本記事では次の3つの方法を紹介します。

GUIツールによるREST APIの利用
JavaScript(ブラウザ環境)によるREST APIの利用
プログラミングによるREST APIの利用

下図に示すJSONPlaceholderの「users」というリソースを操作するためのREST APIを3つの方法で利用してみます。

画像1

ちなみに、「users」というリソースは下記のようなJSON形式のユーザー情報が10個含まれている配列です。

画像2

GUIツールによるREST APIの利用

Visual Studio CodeはMicrosoft社が開発しているWindows、Linux、macOS用のソースコードエディタですが、「REST Client」という拡張機能をインストールすることができます。

「REST Client」を使うと非常に簡単にREST APIを利用することができますので、ここでもそれを利用することにします。

Visual Studio Codeがインストールされていない場合は、まずはインストーラーをダウンロードしてVisual Studio Codeのインストールを行います。

画像3

Visual Studio Codeのインストールが終わればVisual Studio Codeを立ち上げて「REST Client」のインストールを行います。

画像4

「REST Client」のインストールが終わりました。

画像5

拡張子がhttpの「test.http」というファイルを作成し、赤線部分を入力します。(Send Requestは自動で挿入されます)

画像6

左の赤線箇所のSend RequestをクリックするとJSONPlaceholderの「users」のREST APIに対してHTTPリクエストが送信され、リクエスト結果は、右側の分割ウィンドウで確認することができます。

画像7

ファイルにREST APIに対するHTTPリクエストを記述してSend Requestをクリックするだけですぐに使える、という非常に簡単で便利なツールです。

JavaScript(ブラウザ環境)によるREST APIの利用

JavaScriptからREST APIを利用する方法の一つにFetch APIがあります。

下記の「index.html」ではscriptの中でFetch APIを使ってREST APIを利用してデータを取得しています。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>Rest API practice</title>
</head>
<body onload="getData()">
 <ul>
   <div id="dataList"></div>
 </ul>
 <script>
 function getData() {
   const list = document.getElementById('dataList');
   list.innerHTML = '';

   fetch('https://jsonplaceholder.typicode.com/users')
   .then((res) => res.json())
   .then((users) => {
     for (let i = 0; i < users.length; i++) {
       list.innerHTML += `<li>
                            ${users[i].id} ${users[i].name} ${users[i].email}
                          </li>`;
     }
   })
   .catch((err) => console.log(err))
 }
 </script>
</body>
</html>

下図はindex.htmlをブラウザで開いた画面です。

画像9

Fetch APIはブラウザの標準機能なのですぐに使うことができて便利です。

プログラミングによるREST APIの利用

プログラムのコードの中でREST APIの情報を利用したいという場合もあると思います。

ここではPythonというプログラミング言語でREST APIを利用する場合を考えます。

PythonにはRequestsというHTTPライブラリがありますので、そのライブラリを使ってREST APIを利用してデータを取得することにします。

Pythonがインストールされていない場合は、まずPythonのインストーラーをダウンロードします。

画像8

インストーラーを使ってPythonのインストールを行います。

画像10

Pythonのインストールが終わったらpipを使ってRequestsライブラリをインストールします。

画像11

無事にRequestsがインストールできました。

画像12

下記の「example.py」ではRequestsライブラリを使ってREST APIを利用してデータを取得しています。

import requests

url = 'https://jsonplaceholder.typicode.com/users'

r = requests.get(url)
users = r.json()

for user in users:
   print(user['id'], user['name'], user['email'])

下図はexample.pyの実行画面です。

画像13

以上のように、Requestsライブラリを使えば簡単にREST APIを利用することができます。

他の方法の紹介

REST APIを利用する方法はいろいろとありますので、他にどのような方法があるのかを簡単に紹介します。

Postman

PostmanはREST APIを利用するためのGUIツールとしては一番有名なツールだと思います。

画像14

下図がPostmanの実行画面です。

画像18

私は以前はPostmanをメインに使用していましたが、Visual Studio Codeの「REST Client」を使い始めてからは、Postmanはほとんど使用しなくなりました。

axios

JavaScriptからREST APIを利用する方法の一つにaxiosを使う方法があります。

画像15

下記は先程Fetch APIの箇所で紹介しました「index.html」をaxiosを使う形に少し変更したコードです。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>Rest API practice</title>
</head>
<body onload="getData()">
 <ul>
   <div id="dataList"></div>
 </ul>
 <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
 <script>
 function getData() {
   const list = document.getElementById('dataList');
   list.innerHTML = '';

   axios
     .get('https://jsonplaceholder.typicode.com/users')
     .then((res) => res.data)
     .then((users) => {
       for (let i = 0; i < users.length; i++) {
         list.innerHTML += `<li>
                              ${users[i].id} ${users[i].name} ${users[i].email}
                            </li>`;
       }
     })
     .catch((err) => console.log(err));
 }
 </script>
</body>
</html>

下図はindex.htmlをブラウザで開いた画面です。

画像19

Fetch APIとaxiosの違いについては、「Fetch API axios 違い」というワードで検索するといろいろと記事が見つかります。

例えば、下記の記事はわかりやすく両者を比較していると思います。

Flutter

Flutter は Google 社が開発したモバイル(iPhone/Android)、Web、デスクトップアプリを開発できるオープンソースのアプリケーションフレームワークです。

Flutterにはhttpパッケージが用意されており、それを使うことでREST APIを利用することができます。

画像16

下記はJSONPlaceholderのAPIをFlutterで利用しているサンプルコードです。

画像20

以上のように、REST APIを利用する方法はいろいろとあります。

REST APIを使うメリット

上記でみてきましたように、REST APIを利用する方法にはいろいろとあります。

そのため、REST APIベースの業務システムにすると、モバイルアプリケーションへの対応や、外部システムとの連携が従来よりも容易になります。

下図は従来のWeb業務システムとREST APIベースの業務システムを比較しています。

画像17

また、REST APIでクライアントとサーバのやりとりを行う形にすることで、クライアントとサーバが明確に分離され、開発作業やメンテナンス作業がしやすくなることが期待できます。

下記に情報源のリンクを貼っておきます。

以上、本記事ではREST APIの利用方法について簡単に紹介しました。