OpenAPI 仕様を使用して FastAPI で API インターフェイスを定義する方法
はじめに:
Web API を作成する場合、適切な API ドキュメントは非常に重要です。開発者が API をすぐに理解して使用できるように、明確なドキュメントとインターフェイス定義を提供できます。 OpenAPI 仕様は、標準ベースの方法で API ドキュメントを定義および生成できる強力な機能とエコシステム サポートを備えたユニバーサル API 記述言語です。 FastAPI は、OpenAPI 仕様を完全に統合し、強力な自動ドキュメント生成および検証機能を提供する最新の Python Web フレームワークです。この記事では、OpenAPI 仕様を使用して FastAPI で API インターフェイスを定義する方法を紹介し、対応するコード例を示します。
1. FastAPI と pydantic ライブラリをインストールする
始める前に、FastAPI と pydantic ライブラリをインストールする必要があります。これらは次のコマンドでインストールできます:
pip install fastapi pip install uvicorn[standard] pip install pydantic
2. 単純な API インターフェイスの作成
最初に、OpenAPI 仕様の使用方法を示すための単純な API インターフェイスを作成します。 main.py
という名前のファイルに、次のコードを記述します。
from fastapi import FastAPI app = FastAPI() @app.get("/hello") def hello(): return {"message": "Hello, World!"}
このコードは、/hello
の GET リクエスト インターフェイスを作成し、# を含む JSON レスポンスを返します。 ##メッセージフィールド。次に、アプリケーションを実行する必要があります。次のコマンドで実行できます:
uvicorn main:app --reload
アプリケーションの実行後、ブラウザで
http://localhost:8000/docs を開くことができます。自動生成された API ドキュメントにアクセスします。このページは、OpenAPI 仕様に基づいて FastAPI によって自動生成されたドキュメントです。パス、リクエスト メソッド、リクエスト パラメータ、レスポンスの例など、
/hello インターフェイスの詳細を確認できます。さらに、ドキュメント ページでこのインターフェイスをテストすることもできます。
実際のアプリケーションでは、通常、ユーザー入力を受け取るためにパラメーターを使用する必要があります。 FastAPI は、パス パラメーター、クエリ パラメーター、リクエスト本文パラメーター、リクエスト ヘッダー パラメーターなどのパラメーターを定義する複数の方法を提供します。以下では、これらのパラメーターの使用方法を説明します。
パス パラメータは URL の一部であり、動的変数を受け取るために使用されます。
{} を通じてパス パラメータを定義できます。以下の例では、ユーザー ID をパス パラメーターとして受け入れるインターフェイスを作成します。
from fastapi import FastAPI app = FastAPI() @app.get("/users/{user_id}") def get_user(user_id: int): return {"user_id": user_id}
http://localhost:8000/users/1 にアクセスすると、JSON 応答
{"user_id": 1 が返されます。 }。
クエリ パラメータは URL の一部であり、ユーザーから渡されたキーと値のペアを受け取るために使用されます。 FastAPI では、関数パラメータのデフォルト値を通じてクエリ パラメータを定義できます。以下の例では、
limit および
offset クエリ パラメーターを受け入れるインターフェイスを作成します。
from fastapi import FastAPI app = FastAPI() @app.get("/users/") def get_users(limit: int = 10, offset: int = 0): return {"limit": limit, "offset": offset}
http://localhost:8000/users/?limit=20&offset=10 にアクセスすると、JSON 応答が得られます
{ 「制限」: 20、「オフセット」: 10}。
リクエスト本文パラメータは、HTTP リクエスト本文を通じて渡されるデータであり、通常はより大きなデータを受信するために使用されます。 FastAPI では、
pydantic ライブラリのモデルを通じてリクエスト本文のパラメーターを定義できます。次の例では、ユーザー情報をリクエスト本文パラメーターとして受け入れるインターフェイスを作成します。
from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class User(BaseModel): name: str age: int @app.post("/users/") def create_user(user: User): return {"user": user}
curl などのツールを使用して POST リクエストを送信します。
curl -X POST -H "Content-Type: application/json" -d '{"name":"Alice", "age": 25}' http://localhost:8000/users/
{"user" : {"名前": "アリス"、"年齢": 25}}。
リクエスト ヘッダー パラメーターは、HTTP リクエスト ヘッダーを通じて渡されるパラメーターであり、通常、セキュリティ検証情報を渡すために使用されます。 FastAPI では、関数パラメータの
Header() メソッドを使用してリクエスト ヘッダー パラメータを定義できます。以下の例では、
api_key リクエスト ヘッダー パラメーターを受け入れるインターフェイスを作成します。
from fastapi import FastAPI, Header app = FastAPI() @app.get("/protected/") def protected(api_key: str = Header(...)): return {"api_key": api_key}
http://localhost:8000/protected/ にアクセスし、カスタム
api_key リクエスト ヘッダーを指定すると、次の情報を取得できます。 JSON レスポンス
{"api_key": 。
この記事では、OpenAPI 仕様を使用して FastAPI で API インターフェイスを定義する方法を紹介します。 FastAPI が提供するデコレータとパラメータ型アノテーションを使用することで、API インターフェイスを簡単に定義および検証できます。自動的に生成される OpenAPI ドキュメントを通じて、API インターフェイスをすぐに理解して使用でき、他の開発者と簡単に共同作業したり通信したりできます。この記事が、FastAPI での API インターフェイスのより適切な定義と使用に役立つことを願っています。
以上がFastAPIでOpenAPI仕様を使用してAPIインターフェースを定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。