Apidog

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

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

FastAPIガイドライン:APIRouter(ルーター)の使い方を解説

FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはAPIRouterを利用して、ルーディングを管理しています。本文では、FastAPIのAPIRouterを利用する方法を詳しく紹介します。

中村 拓也

中村 拓也

Updated on 11月 12, 2024

FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはAPIRouterを利用して、ルーディングを管理しています。本文では、FastAPIのAPIRouterを利用する方法を詳しく紹介します。

FastAPIのAPIRouterとは

FastAPIにおけるAPIRouterは、APIのルーティングを modular に定義するための機能です。

APIRouterを使うことで、以下のようなメリットが得られます。

  • ルーティング定義をファイルやモジュール単位で分割できるため、コードの整理性が向上します。
  • ある機能ごとに役割や責務を明確に分離でき、マイクロサービス的な設計が可能になります。
  • Routerをインポートするだけで、まとめてルーティングを適用できます。
  • ルーティングに共通のprefixやtagsを一括で設定できるため、DRY(Don't Repeat Yourself) な設計が実現できます。
  • アプリケーションの成長に合わせて、Routerの追加/変更がしやすくなります。

このように、APIRouterを上手く利用することで、拡張性とメンテナンス性を高めたAPI設計が可能になり、FastAPIの大規模化に対応できると言えます。

APIRouterの効果的な運用事例

FastAPIでAPIを定義する場合、通常はmain.pyなど1つのファイルにすべてのルーティングを書くことになりがちです。しかし、アプリケーションが大きくなるにつれて1つのファイルは肥大化していきます。

そこで活用できるのが、APIRouterです。これはminiアプリケーションのようなもので、特定の機能に対応するルーティングをまとめたものです。

例えば、ユーザ管理のためのRouter、商品管理のRouterなどを用意できます。

そして、main.pyではこれらのRouterをインポートして使用するだけで、はっきりとした役割分担ができるようになります。

このようにAPIRouterを使うことで、アプリケーションの規模が大きくなっても、適切に責務を分割して管理できるようになりますね。

FastAPIのAPIRouterの使い方

それでは、FastAPIでAPIRouterを導入するには、どうしたらいいですか?次は、初心者でもわかるように、非常に詳細なAPIRouterの使い方を皆さんに紹介していきたいと思います。APIRouterを利用できる大前提としては、もちろん FastAPIがインストールされるところになります。 FastAPIをまだインストールしていない場合は、次のコマンドラインを利用してインストールしてください。

pip install fastapi

FastAPIでアプリを作成してAPIRouterを導入

それでは、簡単なFastAPIアプリを作成して、APIRouter導入してそれを組織したり、管理したりしましょう。IDEエディターでfastapi-router.pyというPythonファイルを作成して、次のようなコードをそこにコピーしてください。

from fastapi import FastAPI, APIRouter

app = FastAPI()
router = APIRouter()


@router.get("/")
async def hello():
    return {"message": "Hello, FastAPI!"}


@router.get("/greet/{name}")
async def greet(name: str):
    return {"message": f"Hello, {name}!"}


app.include_router(router)


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=8000)

上記のコードでは、名前がrouterになっているAPIRouterを作成しまして、@routerというデコレータでルーディング処理の関数を定義しています。これらの関数はアプリのルーディングの中に含まれています。

アプリの実行

FastAPIのアプリを実行して、APIRouterの機能をテストするために、uvicornのようなASGIサーバーを利用する必要があります。そこで、uvicornがパソコンにインストールされていることを確認してください。まだインストールしていない場合は、次のコマンドでインストールすることができます:

pip install uvicorn

そして、お使いのIDEエディターで、ターミナルを開き、fastapi-router.pyの保存先のディレクトリにCDして、次のコマンドでアプリを実行してください:

uvicorn fastapi-router:app --reload

ここで、HTTPリクエストツール(Curl、Apidogなど)を使って、http://localhost:8000/ か http://localhost:8000/greet/{name} にGETリクエストを送信して、適切なレスポンスを取得することができるようになりました。

ブラウザでレスポンスを確認

Apidogでより便利にAPIをテストする

APIをテストしたりする必要がある場合、Apidogはこちらのおすすめのツールになります。Apidogは、APIの設計、仕様書生成、テスト自動化、APIモックなどの機能にも完璧に対応できるAPI管理ツールとして、FastAPIを利用して作成したAPIをテストする必要がある場合、特にお勧めしたいツールになります。

ApidogでFastAPIで作成したAPIをテスト

FastAPIで作成したAPIをより直感的で効率的にテストしたりするには、次のようにApidogを使用することがお勧めです。

button

ApidogのAPIデバッグモードでは、APIをテストすることが非常に便利になります。新しいAPIを作成して、「デバッグ」モードに切り替えると、アドレスバーでAPIのエンドポイントURLを入力して、必要なパラメータを記入することで、「送信」ボタンをクリックしたら、直ちにレスポンスを取得できます。

APIをより効率的にデバッグ

ここで、レスポンスにおいて、スターテスコードに異常があるかどうかを自動的に検証することもあるので、非常に直感で便利です。

まとめ

本文では、FastAPIのAPIRouterの使い方を紹介しました。APIRouterは、FastAPIのルーディングを組織したり、管理したりできる強力的なツールになります。APIRouterを作成して、@routerでルーディングの処理関数を定義することで、ルーディングをよりよく管理できるので、コードの整理性をかなり向上することができます。また、FastAPIで作成したAPIをApidogでテストすると、直感的な操作によって簡単にテストできるので、APIテストの効率もかなり向上できます。

button
初心者必読!ApidogでのPOSTリクエスト作成法効果的な戦略

初心者必読!ApidogでのPOSTリクエスト作成法

Apidogを使用してPOSTリクエストを作成するプロセスは簡単で、API開発とテストを合理化する幅広い機能を提供します。初心者から経験豊富な開発者まで、Apidogは強力なツールとして役立ちます。

中村 拓也

10月 21, 2024

手動テスト完全解説:品質を保証する最後の砦効果的な戦略

手動テスト完全解説:品質を保証する最後の砦

手動テストはソフトウェアテストライフサイクルに欠かせない要素であり、アプリケーションの品質、使いやすさ、機能を保証します。自動化の利点がある一方で、手動テストは機械では得られない貴重な洞察と創造性を提供し、包括的なテスト戦略として重要です。

中村 拓也

10月 18, 2024

PostmanでHTTP 405 メソッドなしエラーを修正する方法効果的な戦略

PostmanでHTTP 405 メソッドなしエラーを修正する方法

HTTP 405エラーコードは、無効なAPIキーまたはアクセストークンを使用してサーバーにアクセスしようとすると発生します。この記事では、405エラーについて学び、それを修正する方法について、段階的に解説します。

中村 拓也

8月 11, 2024