カテゴリ: Flask 更新日: 2026/03/11

Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説

Flask-RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
Flask-RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説

先生と生徒の会話形式で理解しよう

生徒

「APIって難しそうだけど、Flask‑RESTfulで簡単に作れるって本当ですか?」

先生

「そうです!Flask‑RESTful(フラスク・レストフル)は、PythonのFlask(フラスク)に追加する拡張機能(エクステンション)で、REST API(レストエーピーアイ)をシンプルに作れますよ。」

生徒

「具体的にどう始めればいいですか?」

先生

「導入からエンドポイント作成まで、順を追ってやさしく説明しますね!」

1. REST APIって何?

1. REST APIって何?
1. REST APIって何?

REST APIとは、Webアプリやスマホアプリがサーバーと情報をやり取りするための決まりごとのようなものです。たとえば「天気を知りたい」「ユーザー一覧を取得したい」といった要求に対して、サーバーがデータを返す仕組みを提供します。

REST APIでは、データ操作の目的に応じてHTTPメソッドという分類を使います。GETは「読む」、POSTは「新しく保存する」、PUTは「更新する」、DELETEは「削除する」というイメージで、動作が直感的に理解しやすいのが特徴です。

初心者の方はまず「サーバーにお願いごとを送ると、その結果が返ってくる仕組み」と捉えると理解しやすくなります。次の簡単な例を見ると、APIのイメージがよりつかみやすくなります。


# これはAPIが返してくれるデータのイメージ例です
# 実際にWebブラウザで見るとこのようなJSON形式で返ってきます

{
    "weather": "sunny",
    "temperature": 25
}

このように、REST APIは「特定のURLにアクセスすると、決まった形式のデータが返ってくる」という、とてもシンプルで扱いやすい仕組みです。Flask-RESTfulを使うことで、この仕組みを初心者でも簡単に作れるようになります。

2. Flask-RESTfulのインストール方法

2. Flask-RESTfulのインストール方法
2. Flask-RESTfulのインストール方法

REST APIを作り始める前に、まずは開発環境を整えましょう。ここでは、FlaskとFlask-RESTfulをインストールするまでの流れを、プログラミング初心者の方にもわかりやすいように順番に説明します。どれも短いコマンドなので、「コピペして実行してみる」くらいの気持ちで大丈夫です。

インストール作業は、Windowsなら「コマンドプロンプト」や「PowerShell」、MacやLinuxなら「ターミナル」と呼ばれる黒い画面で行います。まずは次のコマンドを実行して、必要なライブラリをまとめて入れます。


pip install flask flask-restful

pip(ピップ)は、Python用の「アプリストア」のようなもので、FlaskやFlask-RESTfulといった外部ライブラリをインストールするときに使います。コマンドが正常に終われば、REST APIを作るための準備はほぼ完了です。

きちんとインストールできたか不安なときは、次のような簡単なテスト用スクリプトを作って確認してみましょう。


# check_install.py というファイル名で保存してみましょう
from flask import Flask
from flask_restful import Api

app = Flask(__name__)
api = Api(app)

print("Flask と Flask-RESTful のインポートに成功しました!")

このファイルを保存したあと、ターミナルでpython check_install.pyを実行して「インポートに成功しました!」と表示されればOKです。ここまでできれば、次のステップで実際にFlask-RESTfulを使ったREST APIのコードを書いていく準備が整いました。

3. プロジェクト構成を作ってみよう

3. プロジェクト構成を作ってみよう
3. プロジェクト構成を作ってみよう

Flask-RESTfulでREST APIを作るときは、最初に「どんなファイルを用意するか」を決めておくと、後からとても作業しやすくなります。ここでは、最小限のシンプルなプロジェクト構成を作りながら、各ファイルの役割を確認していきましょう。

まずは作業用のフォルダを1つ用意します。名前はflask_rest_apiなど、あとから見て内容が思い出せるものなら何でもかまいません。その中に、次の2つのファイルを作成します。

  • app.py:Flaskアプリ本体のコードを書くファイル
  • requirements.txt:このプロジェクトで使うライブラリ名を一覧にしたファイル

フォルダ構成を図にすると、次のようなイメージになります。


flask_rest_api/
├── app.py
└── requirements.txt

requirements.txtには、REST API開発で利用するライブラリ名を1行ずつ書いておきます。今回はFlaskとFlask-RESTfulを使うので、次のように記述します。


flask
flask-restful

このファイルを作っておくと、あとから別のパソコンで開発するときや、チームメンバーが同じ環境を用意したいときに、次の1行を実行するだけで必要なライブラリをまとめてインストールできます。


pip install -r requirements.txt

プログラミング未経験の方は、まずは「app.pyはプログラムを書く場所」「requirements.txtは必要な道具一覧」と覚えておけば十分です。このあと、app.pyの中に実際のFlask-RESTfulのコードを書いて、REST APIとして動かしていきます。

4. 最初のREST APIを作成しよう

4. 最初のREST APIを作成しよう
4. 最初のREST APIを作成しよう

準備ができたら、いよいよREST APIの“入口”となるコードを書いていきます。ここで作るのは、最も基本的でシンプルな「Hello, World!」を返すAPIです。プログラミング未経験の方でも理解できるよう、どの部分が何をしているのかを丁寧に説明しながら進めます。

APIとは「特定のURLにアクセスすると、決まった情報を返す仕組み」です。Flask-RESTfulでは、クラスを使ってこの“返してほしい情報”を定義します。では実際にapp.pyを作り、以下のコードを書いてみましょう。


from flask import Flask
from flask_restful import Api, Resource

# Flaskアプリを準備
app = Flask(__name__)
api = Api(app)

# Hello という名前のAPI(リソース)を作成
class Hello(Resource):
    # GETメソッドで呼び出されたときに返す内容
    def get(self):
        return {"message": "Hello, World!"}

# / というパスに Hello API を割り当てる
api.add_resource(Hello, "/")

# アプリを起動
if __name__ == "__main__":
    app.run(debug=True)

このAPIは、ブラウザで http://localhost:5000/ にアクセスすると、{"message": "Hello, World!"} というJSONデータを返します。「Webページ」ではなく「データ」が返ってくる点が、REST APIの大きな特徴です。

コードの流れとしては、①Flaskアプリを作り、②APIとして扱うクラス(Hello)を定義し、③そのクラスをURLに紐づける、という3段階。とてもシンプルですが、REST APIの基本がしっかり詰まっています。まずはこの仕組みに慣れることが重要です。

プログラムが正しく動くと、ターミナルに「* Running on http://127.0.0.1:5000/」と表示されます。アクセスして“Hello, World!”が見えたら、REST APIの第一歩は成功です。

5. JSONってなに?初心者向けに解説

5. JSONってなに?初心者向けに解説
5. JSONってなに?初心者向けに解説

JSON(ジェイソン)とは、Webサービスやアプリがデータをやり取りするときに広く使われている、とてもシンプルで読みやすいデータ形式です。人間が見ても理解しやすく、コンピュータにとっても扱いやすいという特徴があります。

基本的には「キー(名前)」と「」をセットで書き、{ }の中にまとめます。例えばユーザーの名前や年齢を送るときは、次のように表現します。


{
    "name": "Taro",
    "age": 20,
    "likes": ["music", "movie"]
}

このように、文字だけでなく数字・リスト(配列)なども扱えるため、アプリが必要とする情報をひとまとまりの形で送受信できます。特別な知識がなくても内容を目で見て理解しやすいことから、REST APIのデータ形式としてほとんどのサービスで採用されています。

ブラウザでAPIを呼び出したときに表示されるのもこのJSONデータです。「ページではなくデータが返ってくる」というREST APIの特徴を理解するためにも、まずはこのJSONの見た目に慣れておくと後の学習がスムーズになります。

6. 他のHTTPメソッドに対応させる方法

6. 他のHTTPメソッドに対応させる方法
6. 他のHTTPメソッドに対応させる方法

REST APIでは、単にデータを「取得」するだけでなく、「送信(保存)」「更新」「削除」といった操作が必要になる場面も多くあります。Flask-RESTfulでは、これらをそれぞれのHTTPメソッドとしてクラス内に追加するだけで簡単に実現できます。特にPOSTPUTは初心者がつまずきやすい部分ですが、仕組みはとてもシンプルです。

次の例では、HelloというリソースにGETPOSTの2つのメソッドを定義しています。GETはページを開いたときのデータ取得、POSTはユーザーが何か情報を送ったときに使われる動作とイメージすると理解しやすいでしょう。


from flask_restful import Resource

class Hello(Resource):
    # 情報を取得したいとき(ブラウザでURLを開いたとき)
    def get(self):
        return {"message": "Hello, World!"}

    # クライアント側からデータを送りたいとき(POSTリクエスト)
    def post(self):
        return {"message": "POSTでデータを受け取りました!"}

このように、メソッド名とHTTPメソッドがそのまま紐づくため、直感的に扱えます。たとえばフォーム送信やボタン操作でデータをサーバーへ送るときはPOSTが使われ、より実践的なREST API開発の第一歩になります。

7. 複数エンドポイントを追加するには?

7. 複数エンドポイントを追加するには?
7. 複数エンドポイントを追加するには?

たとえば/userという新しいURLに対応させるときは:


class User(Resource):
    def get(self):
        return {"user": {"name": "山田", "age": 30}}

api.add_resource(User, "/user")

こうすることで、/userにアクセスするとユーザー情報を返すAPIができます。

8. エラー処理の方法

8. エラー処理の方法
8. エラー処理の方法

例えば、存在しないリソースにアクセスされたとき、404という「ページが見つかりません」エラーを返す処理を入れたい場合は:


from flask_restful import abort

class User(Resource):
    def get(self, user_id):
        users = {1: "山田", 2: "鈴木"}
        if user_id not in users:
            abort(404, message="ユーザーが見つかりません")
        return {"user": users[user_id]}

api.add_resource(User, "/user/<int:user_id>")

これで、存在しないuser_idにアクセスすると、エラー表示がJSON形式で返ります。

9. デバッグモードで開発効率アップ

9. デバッグモードで開発効率アップ
9. デバッグモードで開発効率アップ

最後にapp.run(debug=True)で起動すれば、
エラー内容が画面に詳しく表示され、初心者でもどこが間違っているか見つけやすくなります。

まとめ

まとめ
まとめ

ここまでFlask-RESTfulを使ったREST API構築の基本を一通り学んできました。最初の導入からエンドポイントの作り方、HTTPメソッドの扱い、さらにJSON形式の理解や複数ルートの追加方法まで、初めての方でも流れがつかみやすい形で整理できたと思います。実際のWebサービスでは、データの取得や更新を行うために多くの場面でREST APIが使われており、今回の内容はその基礎として非常に役立つ重要な知識です。また、エラー処理として404を返す仕組みやデバッグモードの使い方など、開発中に「つまずきやすい場所」を事前に理解しておくことで、今後の開発効率が大きく変わります。Flask-RESTfulは軽量で扱いやすいため、小さなAPIから徐々に大きなサービスへと発展させていく際にも柔軟に応えてくれます。 さらに、複数エンドポイントの追加方法では実際にユーザー情報を返す例を示しましたが、これを応用することで商品情報や投稿データなど、さまざまなWebアプリの処理をAPI化できます。PythonとFlaskのシンプルさを活かしながら、明確なルールで整理されたREST APIを構築することで、後からコードを読む人にもわかりやすく、メンテナンス性の高いアプリケーションが作りやすくなります。初心者のうちにこうした基本を丁寧に理解しておくことが、後々大きな力になります。 また、HTTPメソッドの使い分けやJSON形式の理解などはAPIを扱う上で必ず身につける必要があり、今回のサンプルコードを実際に動かしながら体験すると、より深く理解できます。特にフロントエンドやモバイルアプリとの連携を考える場面では、このREST APIの仕組みが中心となるため、学んでおいて損はありません。小さな一歩に見えても、着実に使えるスキルとして積み重なっていくものです。

サンプルコード(まとめ版)

ここでは、今回学んだ要素をひとつにまとめた簡易API例を掲載します。


from flask import Flask, request
from flask_restful import Api, Resource, abort

app = Flask(__name__)
api = Api(app)

users = {
    1: {"name": "山田", "age": 30},
    2: {"name": "鈴木", "age": 25}
}

class User(Resource):
    def get(self, user_id):
        if user_id not in users:
            abort(404, message="ユーザーが見つかりません")
        return {"user": users[user_id]}

    def post(self, user_id):
        data = request.get_json()
        users[user_id] = data
        return {"message": "追加しました", "user": data}

api.add_resource(User, "/user/<int:user_id>")

if __name__ == "__main__":
    app.run(debug=True)

このサンプルではGETとPOSTの両方を扱い、404エラーの処理も含めています。実際のAPI開発に近い形になっているため、学習の仕上げとして使ってみてください。

先生と生徒の振り返り会話

生徒
「最初はAPIってすごく複雑なものだと思っていたけれど、Flask-RESTfulを使うと意外とシンプルに作れるんですね。」

先生
「そうなんです。Flask-RESTfulは必要な機能がコンパクトにまとまっているので、初めてREST APIを作る人にも向いていますよ。」

生徒
「特に404のエラー処理や複数エンドポイントの追加がとてもわかりやすかったです。自分でも簡単なアプリを作れそうです!」

先生
「ぜひ試してみてください。APIの基本を理解できれば、フロントエンドやモバイルアプリとの連携もスムーズになりますよ。」

生徒
「はい!まずは今回のサンプルコードを元に、いくつかエンドポイントを追加してみます!」

先生
「いいですね。小さな積み重ねが大きな成長につながりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Flask‑RESTfulとは何ですか?Python初心者でも使える理由を教えてください。

Flask‑RESTfulは、PythonのWebフレームワークであるFlaskに追加して使える拡張機能で、REST APIを簡単に構築できるライブラリです。初心者でもシンプルなコードでAPIが作れるので、Web開発の入門に最適です。

REST APIとは何かを初心者向けにわかりやすく教えてください。

REST APIとは、Webアプリやスマホアプリがサーバーと通信する仕組みのことで、GETやPOST、PUT、DELETEといったHTTPメソッドを使ってデータの送受信を行います。たとえば天気情報を取得したり、ユーザー情報を更新したりする場面で使われます。
カテゴリの一覧へ
新着記事
New1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
New2
Flask
Flaskアプリのセキュリティ対策まとめ!初心者向けに基本をやさしく解説
New3
Flask
FlaskでCookieを安全に使う方法!HttpOnly・Secureフラグの使い方を徹底解説
New4
Flask
Flaskで外部APIと連携する方法!requestsライブラリの使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.5
Java&Spring記事人気No5
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.6
Java&Spring記事人気No6
Flask
Flaskで開発中にデータベースを初期化する方法!初心者でもわかる便利なTips
No.7
Java&Spring記事人気No7
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説