【初心者必見】PythonでFastAPIを使ってAPIを作成する方法をやさしく解説

PythonでFastAPIを使ってAPIを作成する方法をやさしく解説 python

「Pythonで高速なAPIを作ってみたい!」と思ったことはありませんか?そんなときに役立つのがFastAPIです。本記事では、FastAPIを使ったAPI作成の流れを初心者にもわかりやすく解説します。

FastAPIとは?その特徴とメリット

FastAPIは、PythonでAPIを構築するためのフレームワークです。その最大の特徴は「高速さ」と「型ヒントによる自動ドキュメント化」です。従来のFlaskやDjango REST Frameworkと比べても、リクエスト処理の速度が圧倒的に速く、非同期処理にも対応しています。また、型ヒントを利用することで、自動的にSwagger UIやRedocといったドキュメントが生成される点も魅力です。そのため、初心者から実務利用まで幅広く使える強力なフレームワークといえるでしょう。

FastAPIをインストールする準備

まずはPythonがインストールされているか確認しましょう。次に、pipを使ってFastAPIとUvicornを導入します。UvicornはASGIサーバーで、FastAPIアプリを実行するのに必要です。

pip install fastapi uvicorn

さらに、プロジェクトごとに環境を分けるために仮想環境を利用すると良いです。仮想環境を使えば、他のプロジェクトと依存関係が混ざらずに管理できます。次に進む前に準備を整えておきましょう。

最初のAPIを作成してみよう

FastAPIではシンプルにAPIを作成できます。以下は「Hello, FastAPI!」を返す最小のサンプルです。

# main.py
from fastapi import FastAPI

app = FastAPI()

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

作成したファイルを次のコマンドで実行してみましょう。

uvicorn main:app --reload

ブラウザで「http://127.0.0.1:8000」にアクセスするとJSON形式のレスポンスが返ってきます。さらに「http://127.0.0.1:8000/docs」にアクセスするとSwagger UIが自動生成され、APIをテストできる画面が表示されます。

リクエストパラメータを使ってみる

FastAPIではパラメータ処理も簡単です。たとえばユーザー名を受け取って挨拶を返すAPIは次のように書けます。

@app.get("/hello/{name}")
def say_hello(name: str):
    return {"message": f"Hello, {name}!"}

「http://127.0.0.1:8000/hello/Taro」にアクセスすると「Hello, Taro!」と返ってきます。URLパスパラメータの扱いが直感的なので、コードが分かりやすくなります。さらにクエリパラメータや型指定を組み合わせることで、より堅牢なAPIを作成できます。

リクエストボディを処理する方法

POSTリクエストでJSONデータを受け取ることも可能です。以下はユーザー情報を受け取り、JSONで返す例です。

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

@app.post("/users/")
def create_user(user: User):
    return {"message": f"User {user.name} is {user.age} years old."}

PydanticのBaseModelを使うことで、型のバリデーションが自動的に行われます。つまり、データの信頼性を保ちながらAPIを作れるのです。

データベースとの連携

実際のAPI開発ではデータベースと連携するケースが多いです。FastAPIはSQLAlchemyなどのORMと組み合わせて利用できます。例えばユーザー情報をDBに保存するAPIを構築すれば、CRUD操作が可能になります。また、非同期ORMのTortoise ORMを使うことで、さらに高速でスケーラブルなアプリを作成できます。

応用テクニック:認証とセキュリティ

Web APIを公開する際にはセキュリティも重要です。FastAPIはOAuth2やJWT認証の仕組みをサポートしています。例えば、ユーザーログイン機能を追加して、認証済みのユーザーだけが特定のエンドポイントにアクセスできるようにすることが可能です。さらにCORSの設定も簡単に行えるため、フロントエンドと安全に連携できます。

よくあるエラーと注意点

FastAPIを始めたばかりの人がつまずきやすいポイントもいくつかあります。例えば「モジュールが見つからない」というエラーは、仮想環境を有効化していないことが原因の場合が多いです。また、Uvicornの実行時に「main:app」の記述を間違えるとアプリが起動しません。さらに、型を正しく定義していないとリクエストのバリデーションでエラーが発生します。公式ドキュメントを参考にしながら、少しずつエラーを解決していきましょう。

▶ FastAPI公式ドキュメントはこちら

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

FastAPIを使えば、Pythonで高速かつ安全なAPIを効率的に作成できます。初心者でも少しずつ学べば、本格的なサービス開発に応用可能です。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント

タイトルとURLをコピーしました