Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

APIデバッグ

API Mock

APIテスト自動化

無料登録
Home / ソリューション / 解説:FastAPIのCRUD(作成、読み出し、更新、削除)を

解説:FastAPIのCRUD(作成、読み出し、更新、削除)を

FastAPIを利用してWeb APIを開発している中、CRUD(作成、読み出し、更新、削除)操作を行うのは必要である場合がよく見られます。本文では、FastAPIのCRUD(作成、読み出し、更新、削除)を簡単に実行する方法を皆さんに紹介します。

FastAPIを利用してWeb APIを開発している中、CRUD(作成、読み出し、更新、削除)操作を行うのは必要である場合がよく見られます。本文では、FastAPIのCRUD(作成、読み出し、更新、削除)を簡単に実行する方法を皆さんに紹介します。

FastAPIとは

FastAPIは、高性能なAPI開発を実現するためのPythonフレームワークで、StarletteとPydanticライブラリーに基づいています。REST API開発における新しいスタンダードとして、Pythonコミュニティで急速に注目を集めているフレームワークです。 機械学習プロジェクト等での利用に適している点が大きな特徴です。

公式サイト:https://fastapi.tiangolo.com/ja/

FastAPI

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クライアントを使って、いくつかの使用例を皆さんに紹介します。

button

アイテムを追加

Apidogを使用して、POSTリクエストを使用して、エンドポイント及び追加したいアイテム情報を記入することで、リクエストを簡単に送信できます。

POST http://localhost:8000/items
{
    "id": 1,
    "name": "Apple",
    "price": 0.5
}
FastAPIのPOSTテスト

アイテム情報の取得

ApidogでGETリクエストを利用すると、指定のAPIエンドポイントに簡単にリクエストを送信できます。

GET http://localhost:8000/items
FastAPIのGETテスト

アイテム情報の更新

ApidogでPUTリクエストを使用して、エンドポイント及び更新したいアイテム情報を記入することで、リクエストを簡単に送信できます。

PUT http://localhost:8000/items/1
{
    "id": 1,
    "name": "バナナ",
    "price": 5.9
}
FastAPIのPOSTテスト

アイテムの削除

ApidogでDeleteメソッドを指定して、削除したいアイテムを入力することで簡単にアイテムを削除できます。

DELETE http://localhost:8000/items/1
FastAPIのDeleteテスト

まとめ

本文では、FastAPIでWeb APIを開発している中、CRUD機能を実装する方法を紹介しました。上記の内容して、Web APIを簡単に構築することができます。また、Apidogという直感的なAPI管理ツールを使用することで、Web APIをより簡単で効率的にテストすることもできるので、非常に便利です。

button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。