FastAPIを利用してWeb APIを開発している中、CRUD(作成、読み出し、更新、削除)操作を行うのは必要である場合がよく見られます。本文では、FastAPIのCRUD(作成、読み出し、更新、削除)を簡単に実行する方法を皆さんに紹介します。
FastAPIとは
FastAPIは、高性能なAPI開発を実現するためのPythonフレームワークで、StarletteとPydanticライブラリーに基づいています。REST API開発における新しいスタンダードとして、Pythonコミュニティで急速に注目を集めているフレームワークです。 機械学習プロジェクト等での利用に適している点が大きな特徴です。
公式サイト:https://fastapi.tiangolo.com/ja/
FastAPIでのCRUD
CRUDはCreate、Read、Update、Deleteの頭文字をとったもので、作成、読み出し、更新と削除の意味をしています。FastAPIを開発している中、CRUD機能を実装してデータを操作するのは非常に不可欠なことになります。
FastAPIでCRUD機能を実装すると、主に以下のようなデータ操作が可能になります。
- モデル定義に基づくデータの作成 (Create)
リクエストBodyにモデルを指定することで、バリデーションを経たデータを作成できる。
- データの取得 (Read)
パスパラメータやクエリパラメータを使って、指定したデータを取得できる。
- データの更新 (Update)
パスパラメータで指定したデータを、リクエストBodyのモデルで更新できる。
- データの削除 (Delete)
パスパラメータで指定したデータを削除できる。
具体的には以下のような操作が可能。この他にも、パラメータの検証、レスポンスモデルの定義、データベースへの接続などを組み合わせることで、アプリケーションに合わせた柔軟なCRUD操作が実装できます。
FastAPIでCRUDを実装する方法
それでは、FastAPIでCRUDを実装するには、どうしたらいいですか?次は、詳しい実装方法を皆さんに紹介していきたいと思います。
ステップ⒈FastAPIのインストール
FastAPIはPythonに基づいているフレームワークなので、まずはパソコンにPythonがインストールされていることを確認してください。そして、次のPIPコマンドを利用して、FastAPIをインストールする必要があります。
pip install fastapi
ステップ⒉FastAPIのアプリを作成
Pythonのファイル(たとえば、main.py)を作成して、必要なモジュールとライブラリーをインポートします。
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
ステップ⒊データモデルを定義
そして、Pydanticを使用して、データモデルを定義します。
定義の例:
class Item(BaseModel):
id: int
name: str
price: float
ステップ⒋CRUDルーディングと処理関数を作成
FastAPIを使用して、ルーディングと関連の処理関数を作成して、CRUD機能を実装します。たとえば:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "Item deleted"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
ステップ⒌アプリを実装
FastAPIのアプリを実装してAPIRouterの機能をテストするために、uvicornのようなASGIサーバーを利用する必要があります。そこで、uvicornをインストールしたことを確認してください。また、次のコマンドを使用して、uvicornをインストールすることもできます:
pip install uvicorn
そして、お使いのIDEエディターで、ターミナルを開き、main.pyファイルの保存先のディレクトリにCDして、次のコマンドでFastAPIのアプリを実装してください:
uvicorn main:app --reload
このFastAPIのアプリはデフォルトポート(通常は8000)で立ち上げられ、自動ロード機能も自動的に有効にされます。そうすると、コードに変更がある場合、アプリが再ロードされ、いつも最新状態を保つことができます。
ステップ⒍CRUD機能をテスト
HTTPクライアント(CurlかApidogなど)を使って、リクエストを送信して、CRUD機能が正しく機能できるかどうかをテストすることができます。次は、Apidogという便利なHTTPクライアントを使って、いくつかの使用例を皆さんに紹介します。
アイテムを追加
Apidogを使用して、POSTリクエストを使用して、エンドポイント及び追加したいアイテム情報を記入することで、リクエストを簡単に送信できます。
POST http://localhost:8000/items
{
"id": 1,
"name": "Apple",
"price": 0.5
}
アイテム情報の取得
ApidogでGETリクエストを利用すると、指定のAPIエンドポイントに簡単にリクエストを送信できます。
GET http://localhost:8000/items
アイテム情報の更新
ApidogでPUTリクエストを使用して、エンドポイント及び更新したいアイテム情報を記入することで、リクエストを簡単に送信できます。
PUT http://localhost:8000/items/1
{
"id": 1,
"name": "バナナ",
"price": 5.9
}
アイテムの削除
ApidogでDeleteメソッドを指定して、削除したいアイテムを入力することで簡単にアイテムを削除できます。
DELETE http://localhost:8000/items/1
まとめ
本文では、FastAPIでWeb APIを開発している中、CRUD機能を実装する方法を紹介しました。上記の内容して、Web APIを簡単に構築することができます。また、Apidogという直感的なAPI管理ツールを使用することで、Web APIをより簡単で効率的にテストすることもできるので、非常に便利です。