Python FastAPIを使ってAPIを開発する方法

PythonAPI開発に広く使われているプログラミング言語であり、その中でもFastAPIは高速で使いやすく、人気のあるWebフレームワークです。FastAPIを使って、Pythonで簡単かつ高速なAPIを作成する方法を紹介します。

FastAPIとは

FastAPIは、Python 3.6以上のバージョンで動作する高速なWebフレームワークです。FastAPIは、高速な処理速度、APIドキュメンテーションの自動生成、型ヒントによる入力検証、スキーマの自動生成などの特徴を持ちます。また、FastAPIはPythonのWebフレームワークで、高速で非同期処理に対応し、型ヒントを活用して自動的にAPIのドキュメントを生成します。簡潔な構文と自動データバリデーションにより、効率的なAPI開発を実現します。

FastAPIのインストール

FastAPIをインストールするには、pipを使用して以下のようにコマンドを実行します。

pip install fastapi

また、FastAPIを使用する際に、uvicornというASGIサーバーも利用します。以下のようにコマンドを実行してインストールします。

pip install uvicorn

FastAPIを使ったAPIの作成

FastAPIを使ってAPIを作成するには、まずfastapiモジュールをインポートします。以下の例では、FastAPIアプリケーションのインスタンスを作成します。

from fastapi import FastAPI

app = FastAPI()

ここで、FastAPIオブジェクトを作成し、それを使ってAPIルートを定義することができます。APIルートは、HTTPリクエストを受け取り、HTTPレスポンスを返す関数です。

以下は、FastAPIを使ったAPIの例です。このAPIは、GETメソッドで「Hello, World!」というメッセージを返します。

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

この例では、@app.getというデコレーターを使用して、HTTP GETメソッドに対応するAPIルートを定義しています。async defキーワードを使用して非同期関数を定義し、returnステートメントでレスポンスを返しています。

FastAPIの実行

FastAPIアプリケーションを実行するには、以下のようにuvicornを使用します。

uvicorn main:app --reload

このコマンドでは、mainPythonファイル名、appはFastAPIアプリケーションのインスタンスの名前を指定しています。--reloadオプションを指定することで、コードが変更された場合に自動的にアプリケーションを再読み込みします。

FastAPIのその他の機能

FastAPIでは、さまざまなHTTPメソッド(GET、POST、PUT、DELETEなど)に対応するAPIルートを定義することができます。以下の例では、FastAPIを使ってAPIを作成し、POSTメソッドでJSONデータを受け取ります。

from fastapi import FastAPI

app = FastAPI()

@app.post("/items/")
async def create_item(item: Item):
    return item

この例では、@app.postというデコレーターを使用して、HTTP POSTメソッドに対応するAPIルートを定義しています。引数には、FastAPIモデルを使用してJSONデータを解析しているItemが含まれています。

FastAPIモデルは、APIに入力されたJSONデータをパースして、型ヒントに基づいてデータを検証します。FastAPIは、Pydanticを使用して型ヒントからモデルを自動生成するため、型ヒントを使ってAPIの入力パラメータを定義することができます。

FastAPIのドキュメンテーション

FastAPIは、APIドキュメンテーションを自動的に生成することができます。FastAPIは、Swagger UIおよびRedocの両方をサポートしています。ドキュメントを自動で生成してAPI仕様書を作成するには、実装時にPythonの型ヒントを利用してメソッドを実装する必要があります。以下は、FastAPIを使って作成されたAPIのSwagger UIの例です。Swagger UIを使用すると、APIの仕様を簡単に確認できます。

FastAPI Swagger UI

FastAPIは、APIの入力パラメータを検証し、スキーマを自動生成するため、APIの仕様を記述する必要がありません。FastAPIは、自動的にドキュメンテーションを生成するため、APIを作成するのが簡単になります。

APIのテスト

開発したAPIのテストについてはこちらの記事を参考にして下さい。

pydocument.hatenablog.com

pydocument.hatenablog.com

まとめ

FastAPIは、PythonAPIを作成するための高速で使いやすいWebフレームワークです。FastAPIは、タイプヒントを使用した入力検証、自動スキーマ生成、APIドキュメンテーションの自動生成など、多くの便利な機能を備えています。FastAPIを使用することで、Pythonで簡単かつ高速なAPIを作成することができます。

[PR]

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com