Apidog

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

API設計

API仕様書生成

APIデバッグ

API Mock

APIテスト自動化

無料登録
Home / ソリューション / 「入門」FastAPIとは、その使い方をご紹介

「入門」FastAPIとは、その使い方をご紹介

FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはオープンソースのプロジェクトとして、多くの開発者に利用されています。本文では、FastAPIについて詳しく皆さんに紹介した上、その使い方をも皆さんに紹介していきたいと思います。

FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはオープンソースのプロジェクトとして、多くの開発者に利用されています。本文では、FastAPIについて詳しく皆さんに紹介した上、その使い方をも皆さんに紹介していきたいと思います。

FastAPIとは

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

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

FastAPI

FastAPIの特徴

FastAPIの特徴といえば、主に次のようなものがあります:

  • シンプルでintuitiveな設計:ルーティング、リクエスト、レスポンスなどの機能がよく構造化されている
  • 超高速:他のPythonフレームワークよりもはるかに高速に動作する
  • 自動生成されるインタラクティブドキュメント:OpenAPI標準に準拠したドキュメントが自動生成される
  • データ検証:Pydanticを利用したデータ検証機能
  • シンプルなデプロイ: ASGIサーバーとの親和性が高い
  • 機械学習対応:TensorFlowやPyTorchとのインテグレーションが容易

FastAPIの動作環境

それでは、FastAPIを利用するために、動作要件は何ですか?次はFastAPIの実行に不可欠な要件を紹介するので、次の内容を参照して、FastAPIの動作環境を整えましょう。

Python 3.7+

FastAPIはPython 3.7以上が必要です。型ヒント機能等を利用するため、3.7以上のバージョンが推奨されます。

ASGIサーバー

FastAPIはASGI(Asynchronous Server Gateway Interface)に準拠したサーバー上で動作します。代表的なのはUvicornですが、Hypercorn等のASGIサーバーも利用できます。

pip install uvicorn

Pydantic

リクエストとレスポンスのデータ検証にPydanticライブラリが利用されます。FastAPIはPydanticに依存しているため、インストールが必要です。

pip install pydantic

Starlette

FastAPIはStarletteと呼ばれるWSGI/ASGIフレームワークの上に構築されています。直接は必要ありませんが、内部的にはStarletteに依存関係があります。

(オプション) SQLAlchemy, Keras, PyTorch等

機械学習や大規模なデータ処理を行う場合、これらのライブラリとの連携が可能です。アプリケーション次第で必要になる場合があります。

  • SQLAlchemy (オプション)
pip install sqlalchemy
  • Keras (オプション)
pip install keras
  • PyTorch (オプション)
pip install torch

FastAPIの使い方:インストールして利用する

それでは、次は基本的なFastAPIの使い方を皆さんに紹介します。次のステップを参照して、FastAPIで簡単なWebアプリを構築しましょう。

FastAPIのインストール

次のコマンドラインを使って、FastAPIをインストールすることができます:

pip install fastapi

そして、uvicornをインストールします。

FastAPIのアプリを作成

そして、Pythonファイルを新しく作成して、たとえば、demo.py。次のコードをそこにコピーします。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

上記のコードでは、appと名付けられたFastAPIの使用例を作成して、ルートルーディングを定義し、JSONフォーマットのレスポンスも定義しました。

FastAPIアプリを実装

次のようなコマンドでFastAPIアプリを実装することができます。

uvicorn main:app --reload

ここで、FastAPIはローカルでサーバーを立ち上げ、デフォルトポート(8,000)を監視できます。http://127.0.0.1:8000をブラウザで開くと、 {"Hello": "World"}のレスポンスを見ることができます。

より多くのルーディングと機能を追加

上記のコードに基づき、より多くのルーディングと機能を追加することができます。ここで自分のニーズに従って追加することができます。

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

たとえば:上記のコードに read_item の新しいルーディングを追加し、 item_idというパラメータと qというオプションのプラメータを受けとり、JSON形式のレスポンスを返します。

サンプル:FastAPIの使用例

次は、FastAPIの実の使用例を皆さんに紹介します。次は、直接に実装可能なコードで、IDEエディターにコピーして実行してください。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": f"APIのid:{item_id}"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)
FastAPIのアプリを実行

そして、ブラウザで http://localhost:8000/にアクセスすると、 {"Hello": "World"}というレスポンスのコンテンツを見れるようになります。

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

また、 http://localhost:8000/items/42?q=somequeryのようなURLにアクセスして、パラメータ付きのレスポンスを確認することができます。

APIドキュメントの確認

また、FastAPIはSwaggerのドキュメントの自動生成をサポートしています。FastAPIが自動生成したAPIドキュメントを確認するには、http://localhost:8000/docsにアクセスしてください。

FastAPIによって自動生成されたAPIドキュメント

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

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

button

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

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

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

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

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

button

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

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