カテゴリ: Python 更新日: 2026/04/21

PythonでREST APIを作る方法!初心者向けFastAPI入門|Python API開発の基本

PythonでREST APIを作る方法!初心者向けFastAPI入門
PythonでREST APIを作る方法!初心者向けFastAPI入門

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

生徒

「PythonでWebサービスみたいなAPIを作れるって聞いたんですが、本当に初心者でもできますか?」

先生

「はい、できます。PythonにはFastAPIというとても便利なフレームワークがあり、簡単にREST APIを作ることができます。」

生徒

「REST APIってそもそも何なんですか?聞いたことはあるんですが、よくわかりません。」

先生

「REST APIとは、インターネットを通じてプログラム同士がデータをやり取りする仕組みです。例えばスマートフォンの天気アプリは、天気情報のAPIにアクセスして天気データを取得しています。」

生徒

「なるほど!Pythonでもそういう仕組みが作れるんですね!」

先生

「そうです。それではPythonのFastAPIを使ってREST APIを作る基本を順番に見ていきましょう。」

1. FastAPIとは?PythonでREST APIを作るためのフレームワーク

1. FastAPIとは?PythonでREST APIを作るためのフレームワーク
1. FastAPIとは?PythonでREST APIを作るためのフレームワーク

FastAPIとは、PythonでREST APIを簡単に作ることができるWebフレームワークです。 フレームワークとは、プログラムを効率よく作るための便利な仕組みがまとめられたソフトウェアのことです。

PythonのAPI開発では、FlaskやDjangoなども有名ですが、FastAPIは次の特徴があるため初心者にも人気があります。

  • 高速に動作するPython Webフレームワーク
  • コードがシンプルで初心者でも理解しやすい
  • 自動でAPIドキュメントを作ってくれる

REST APIとは、Webの仕組みを使ってデータをやり取りするAPIの形式です。 例えば、ブラウザでURLにアクセスすると情報が取得できるような仕組みです。

つまりFastAPIを使うと、PythonでWeb API・REST API・バックエンドAPIなどを簡単に作ることができます。

2. FastAPIのインストール方法(Python環境の準備)

2. FastAPIのインストール方法(Python環境の準備)
2. FastAPIのインストール方法(Python環境の準備)

まずはPythonでFastAPIを使えるようにするためにインストールを行います。 Pythonがインストールされている環境で、コマンドプロンプトまたはターミナルを開いて次のコマンドを実行します。


pip install fastapi uvicorn

ここで出てきた用語も簡単に説明します。

  • pip:Pythonのライブラリをインストールするツール
  • FastAPI:PythonのREST APIフレームワーク
  • uvicorn:FastAPIを動かすためのサーバー

サーバーとは、インターネット上でデータを提供するコンピュータやソフトのことです。 今回は自分のパソコンを小さなWebサーバーとして動かします。

3. 最初のFastAPIプログラムを作ってみよう

3. 最初のFastAPIプログラムを作ってみよう
3. 最初のFastAPIプログラムを作ってみよう

それではPythonで最もシンプルなFastAPIのREST APIを作ってみましょう。

まずは「main.py」というファイルを作成し、次のコードを書きます。


from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello FastAPI"}

このコードはとてもシンプルですが、すでにREST APIとして動作します。

@app.get("/")という部分は、ブラウザでURLにアクセスしたときに実行される処理を指定しています。

つまり、このAPIにアクセスすると「Hello FastAPI」というデータが返されます。

4. FastAPIサーバーを起動する方法

4. FastAPIサーバーを起動する方法
4. FastAPIサーバーを起動する方法

作成したFastAPIのプログラムを実際に動かしてみましょう。

次のコマンドを実行します。


uvicorn main:app --reload

このコマンドの意味を簡単に説明します。

  • main:Pythonファイル名
  • app:FastAPIアプリの名前
  • --reload:コード変更時に自動再起動

サーバーが起動したらブラウザで次のURLを開きます。

http://127.0.0.1:8000

すると次のようなJSONデータが表示されます。


{"message":"Hello FastAPI"}

これがPythonで作った最初のREST APIです。

5. URLに応じてデータを返すAPIを作る

5. URLに応じてデータを返すAPIを作る
5. URLに応じてデータを返すAPIを作る

REST APIではURLによって処理を変えることがよくあります。 例えばユーザーIDなどを指定してデータを取得するAPIです。

FastAPIでは次のように書くことでURLの値を取得できます。


from fastapi import FastAPI

app = FastAPI()

@app.get("/user/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}

例えば次のURLにアクセスします。

http://127.0.0.1:8000/user/10

すると次のデータが返ってきます。


{"user_id":10}

このようにURLの数字を使って、データベース検索などを行うAPIを作ることができます。

6. データを受け取るPOST APIの作り方

6. データを受け取るPOST APIの作り方
6. データを受け取るPOST APIの作り方

REST APIではデータを取得するだけでなく、新しいデータを送信することもあります。 このときによく使われるのがPOSTリクエストです。

FastAPIでは次のように書くことでPOST APIを作ることができます。


from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: int

@app.post("/items/")
def create_item(item: Item):
    return {"name": item.name, "price": item.price}

ここで登場したBaseModelは、APIで受け取るデータの形を定義するための仕組みです。

例えば「商品名」と「価格」を送信するAPIなどを簡単に作ることができます。

7. FastAPIの自動ドキュメント機能

7. FastAPIの自動ドキュメント機能
7. FastAPIの自動ドキュメント機能

FastAPIの大きな特徴の一つが自動APIドキュメントです。

サーバーを起動した状態で次のURLを開いてみてください。

http://127.0.0.1:8000/docs

するとSwagger UIという画面が表示され、作成したAPIの一覧を見ることができます。

さらにその画面からAPIを実際にテストすることもできます。

通常のAPI開発ではドキュメントを別に作る必要がありますが、FastAPIでは自動生成されるため開発効率が非常に高いです。

このようにFastAPIはPython API開発、Web API開発、REST API開発、バックエンド開発などで多くの開発者に利用されています。

まとめ

まとめ
まとめ

ここまで、Pythonを使ったREST API開発の基本として、FastAPIを利用したAPIの作り方を順番に学びました。FastAPIはPythonでWeb APIを作るための人気の高いフレームワークであり、シンプルなコードでREST APIやバックエンドAPIを構築できる点が大きな特徴です。

まず最初に理解しておきたいのは、REST APIとはインターネットを通じてプログラム同士がデータをやり取りするための仕組みであるということです。Webサービスやスマートフォンアプリ、クラウドサービスなどの多くは、このREST APIという仕組みを使って情報を取得したり送信したりしています。

Pythonはデータ処理やAI開発で有名なプログラミング言語ですが、FastAPIのようなフレームワークを使うことで、Webアプリケーション開発やAPIサーバー開発にも活用することができます。特にFastAPIはコードの書き方がとても分かりやすく、Python初心者でも比較的短いコードでREST APIを作れるため、Python Web開発の入門としてもとても適しています。

今回の記事では、まずFastAPIの基本的な特徴として「高速に動作する」「コードがシンプル」「自動ドキュメント機能がある」というポイントを確認しました。これらの特徴によって、Pythonを使ったAPI開発の効率が大きく向上します。

次に、Python環境でFastAPIを使うための準備として、pipコマンドを使ったインストール方法を紹介しました。FastAPIを利用する場合は、FastAPI本体とAPIサーバーとして動作するuvicornを一緒にインストールすることで、簡単にローカル環境でAPIサーバーを起動することができます。


pip install fastapi uvicorn

このコマンドを実行することで、Pythonのパッケージ管理ツールであるpipがFastAPIとuvicornをダウンロードし、Python環境にインストールしてくれます。Pythonのライブラリ管理はWeb開発やAPI開発においてとても重要な知識なので、初心者の方はぜひ覚えておきましょう。

FastAPIで最初のREST APIを作る流れ

FastAPIでREST APIを作る基本的な流れはとてもシンプルです。まずPythonファイルを作成し、FastAPIクラスを読み込み、APIのエンドポイントを定義します。エンドポイントとは、URLにアクセスしたときに実行される処理のことです。


from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello FastAPI"}

このコードでは、ブラウザからトップページのURLにアクセスすると「Hello FastAPI」というJSONデータを返すAPIを作っています。たった数行のコードでREST APIが作れるのは、FastAPIの大きな魅力です。

APIを実際に動かすためには、uvicornを使ってサーバーを起動します。uvicornはPythonで動作するASGIサーバーで、FastAPIアプリケーションをWebサーバーとして公開する役割を持っています。


uvicorn main:app --reload

このコマンドを実行すると、ローカル環境でAPIサーバーが起動し、ブラウザからアクセスできるようになります。開発中は「--reload」オプションを付けることで、Pythonコードを変更したときに自動的にサーバーが再起動するため、開発効率が非常に高くなります。

URLパラメータを使ったAPIの作り方

REST APIではURLの一部をパラメータとして利用することがよくあります。例えばユーザーIDや商品IDを指定してデータを取得するようなAPIです。FastAPIではURLパスに変数を定義することで簡単にパラメータを取得できます。


from fastapi import FastAPI

app = FastAPI()

@app.get("/user/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}

このように書くことで、URLに含まれる数字を取得してAPI処理に利用することができます。例えばユーザー情報を取得するAPIや商品情報を取得するAPIなど、さまざまなWebサービスのバックエンドでこの仕組みが利用されています。

POSTリクエストを使ったデータ送信API

REST APIではデータを取得するGETリクエストだけでなく、新しいデータを登録するPOSTリクエストも重要です。FastAPIではPydanticのBaseModelを使うことで、受け取るデータの形式を簡単に定義することができます。


from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: int

@app.post("/items/")
def create_item(item: Item):
    return {"name": item.name, "price": item.price}

このプログラムでは、商品名と価格を受け取るAPIを作っています。Webアプリケーションでは、ユーザー登録、商品登録、コメント投稿など、さまざまな場面でPOST APIが利用されます。

FastAPIの自動ドキュメント機能

FastAPIの便利な機能として、自動でAPIドキュメントを作成してくれる仕組みがあります。サーバーを起動した状態で「/docs」にアクセスすると、Swagger UIという画面が表示されます。この画面では作成したAPIの一覧を確認できるだけでなく、実際にAPIリクエストを送信してテストすることもできます。

API開発ではドキュメント管理がとても重要ですが、FastAPIではコードから自動生成されるため、開発者は余計な作業をする必要がありません。これはPython API開発やWebバックエンド開発において非常に大きなメリットといえます。

このようにFastAPIは、Pythonを使ったWeb API開発、REST API開発、バックエンドシステム構築、マイクロサービス開発など、さまざまな場面で活用されています。初心者の方でも基本を理解すれば、自分のWebサービスやAPIサーバーを作ることができるようになります。

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

生徒

「今回の記事で、PythonでもWebサービスの裏側で使われているREST APIが作れることがよく分かりました。FastAPIはコードがとてもシンプルで驚きました。」

先生

「そうですね。FastAPIはPythonのWebフレームワークの中でも特にシンプルで高速なAPI開発ができるのが特徴です。初心者がPythonでAPI開発を学ぶにはとても良い環境です。」

生徒

「GETリクエストでデータを取得したり、POSTリクエストでデータを送信したりする仕組みも理解できました。URLにユーザーIDを入れてデータを取得するAPIもよく分かりました。」

先生

「それは良い理解ですね。REST APIではURLパラメータやJSONデータを使って情報をやり取りします。FastAPIはその仕組みをとても簡単に書けるように設計されています。」

生徒

「それからSwaggerのAPIドキュメントも便利ですね。自動でAPI一覧が表示されるので、開発やテストがとてもやりやすそうです。」

先生

「その通りです。FastAPIはドキュメント生成、データ検証、型チェックなどの機能が最初から用意されています。そのためPythonを使ったWeb API開発やバックエンド開発の効率がとても高くなります。」

生徒

「これからはデータベースと連携したAPIや、実際のWebサービスのバックエンドにも挑戦してみたいです。」

先生

「とても良い目標ですね。FastAPIを使えば、ユーザー管理API、商品管理API、ログインAPIなど、本格的なWebアプリケーションのバックエンドも作れるようになります。ぜひ今回の基本をベースにして、PythonによるAPI開発をさらに学んでいきましょう。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)