FastAPIを使用してAPIを作成する方法

FastAPIを使用してAPIを作成する方法のカバー画像

FastAPIフレームワークを使って基本的なAPIを作成する方法を見てみましょう。

まず、FastAPIとUvicornがインストールされていることを確認してください。以下のコマンドでインストールできます:

pip install fastapi uvicorn[standard]

さぁ、FastAPIアプリケーションを簡単に作成しましょう。main.py という名前のファイルを作成します:

# main.py
from fastapi import FastAPI

app = FastAPI()

しかし、これだけではありません。FastAPIインスタンスを初期化しただけで、CORS(Cross-Origin Resource Sharing: クロスオリジンリソースシェアリング)として知られているものを設定する必要があります。

CORSは、異なるオリジンのWebアプリケーションからAPIにアクセスできるようにする際に重要です。main.py ファイルを変更しましょう。

# main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# CORSを設定

origins = ["http://localhost", "http://localhost:3000", "https://yourfrontenddomain.com"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

許可されているオリジン(origins)を、自分のフロントエンドアプリケーションの実際のドメインに置き換えてください。ローカルホストでアプリをテストしているだけの場合は、あまり変更する必要はないかもしれません。

APIを作成しましょう。

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

ファイルはこのようになります。

# main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

# CORSを設定

origins = ["http://localhost", "http://localhost:3000", "https://yourfrontenddomain.com"]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

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

エンドポイント / のAPIを呼び出しましょう。その前にサーバーを起動する必要があります。Uvicornを使ってFastAPIサーバーを起動します。

uvicorn main:app --reload

これでFastAPI開発サーバーが起動し、APIは http://127.0.0.1:8000 でアクセスできるようになります。CORSミドルウェアは指定されたオリジンからのリクエストを許可します。

ブラウザを開くか、curlやPostmanのようなツールを使ってAPIにアクセスできます。例えば、ローカルで実行している場合、ブラウザで http://localhost:8000 を開くと、「Hello, World!」のメッセージが表示されるはずです。

役に立ったと思います。読んでくださってありがとうございました。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/seek4samurai/how-to-make-an-api-using-fastapi-299o