Apidog

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

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

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

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

中村 拓也

中村 拓也

Updated on 11月 12, 2024

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

💡
ApidogというツールをFastAPIと組み合わせることで、APIのテストやドキュメント生成をより効率的に行うことができます。Apidogを使用することで、APIのデバッグ、テスト、そして綺麗で直感的なAPIドキュメントの生成が可能になります。
button

FastAPIとは

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

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

FastAPI

FastAPIの特徴と実現できること

FastAPIの特徴は何ですか?FastAPIを通じて実現できることは何ですか?この部分では、これらの問題について回答しようと思います。FastAPIの特徴と実現できることといえば、主に次のようなものがあります:

  • シンプルで直感的な設計:ルーティング、リクエスト、レスポンスなどの機能がよく構造化されている
  • 超高速:他のPythonフレームワークよりもはるかに高速に動作する
  • 自動生成されるインタラクティブドキュメント:OpenAPI標準に準拠したドキュメントが自動生成される
  • データ検証:Pydanticを利用したデータ検証機能
  • シンプルなデプロイ: ASGIサーバーとの親和性が高い
  • 機械学習対応:TensorFlowやPyTorchとのインテグレーションが容易
  • セキュリティ機能:OAuth2、JWT認証、HTTPBasic認証などのセキュリティ機能を簡単に実装
  • WebSocketsサポート:FastAPIでWebSocketを利用してリアルタイム通信を簡単に実装可能
  • GrahQLサポート:GraphQLサーバーを簡単に実装
  • 多言語へのサポート:国際化(i18n)を簡単に実装

これらの機能により、FastAPIは幅広いアプリケーションの開発に適しており、特にマイクロサービスやRESTful APIの構築に強力なツールとなっています

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ガイドライン:APIRouter(ルーター)の使い方を解説
FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはAPIRouterを利用して、ルーディングを管理しています。本文では、FastAPIのAPIRouterを利用する方法を詳しく紹介します。

FastAPIの他の機能の使い方をも確認

ガイド:FastAPIでファイルをアップロードする方法
本文では、FastAPIでファイルをアップローする方法を皆さんに紹介します。本ガイドを参照して、FastAPIのファイルアップロード方法、ユースケース、IDEエディターで実装する手順などを手に入れることができます。
FastAPIガイドライン:APIRouter(ルーター)の使い方を解説
FastAPIは、PythonでWeb APIを構築するための高性能なフレームワークです。FastAPIはAPIRouterを利用して、ルーディングを管理しています。本文では、FastAPIのAPIRouterを利用する方法を詳しく紹介します。
解説:FastAPIのCRUD(作成、読み出し、更新、削除)を
FastAPIを利用してWeb APIを開発している中、CRUD(作成、読み出し、更新、削除)操作を行うのは必要である場合がよく見られます。本文では、FastAPIのCRUD(作成、読み出し、更新、削除)を簡単に実行する方法を皆さんに紹介します。

サンプル: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でより便利にFastAPIを取り扱う

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

button

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

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

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

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

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

button

FastAPIで作成したAPIのドキュメンテーションを生成

上記のように、FastAPIで作成されたAPIをテストして問題がないことを確認した上、右上の「保存」ボタンをクリックして、そのAPIの仕様を簡単に保存することができます。そして、Apidogという便利なツールを利用して、簡単に綺麗で直感的なAPIドキュメンテーションを生成することができます。

ステップ1. 左側メニューから「共有」をクリックして、「新しい共有」を選択すると、次のような共有設定が表示されます。

ここで、共有するAPIを選択して、必要に応じてセキュリティ設定や言語の設定を終えて、「保存」をクリックします。

API仕様書の共有設定

ステップ⒉ 新しい共有項目が表示されます。「開く」をクリックすると、API仕様書がブラウザに表示されます。

API仕様書を開く

生成されたAPIドキュメンテーション例:

Apidogによって保存されたAPI仕様を利用して、次のような綺麗なAPIドキュメンテーションを生成できます:

APIドキュメンテーション
button

まとめ

本文では、FastAPIの概要、特徴、動作環境、基本的な使い方、そしてサンプルコードについて詳しく解説しました。FastAPIは高性能で使いやすいPythonフレームワークであり、RESTful APIやマイクロサービスの開発に適しています。主な特徴として、高速な処理、自動ドキュメント生成、データ検証機能、セキュリティ機能の容易な実装などが挙げられます。また、Python 3.7以上の環境で動作し、ASGIサーバーやPydanticなどの依存関係があります。

基本的な使い方としては、FastAPIとuvicornをインストールし、Pythonファイルでアプリケーションを作成、ルーティングを定義し、uvicornを使用して実行するという流れになります。

さらに、ApidogというツールをFastAPIと組み合わせることで、APIのテストやドキュメント生成をより効率的に行うことができます。Apidogを使用することで、APIのデバッグ、テスト、そして綺麗で直感的なAPIドキュメントの生成が可能になります。

FastAPIは、その高性能と使いやすさから、多くの開発者に支持されており、今後さらに普及していくことが予想されます。APIの開発を効率化したい場合や、高性能なWebアプリケーションを構築したい場合には、FastAPIは非常に有力な選択肢となるでしょう。

初心者必読!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