コンテンツへスキップ

FastAPI CLI

FastAPI CLIは、FastAPIアプリの提供、FastAPIプロジェクトの管理などを行うことができるコマンドラインプログラムです。

FastAPIをインストールすると(例: pip install "fastapi[standard]")、fastapi-cliというパッケージが含まれます。このパッケージは、ターミナルでfastapiコマンドを提供します。

開発のためにFastAPIアプリを実行するには、fastapi devコマンドを使用できます。

$ <font color="#4E9A06">fastapi</font> dev <u style="text-decoration-style:solid">main.py</u>

  <span style="background-color:#009485"><font color="#D3D7CF"> FastAPI </font></span>  Starting development server 🚀

             Searching for package file structure from directories with
             <font color="#3465A4">__init__.py</font> files
             Importing from <font color="#75507B">/home/user/code/</font><font color="#AD7FA8">awesomeapp</font>

   <span style="background-color:#007166"><font color="#D3D7CF"> module </font></span>  🐍 main.py

     <span style="background-color:#007166"><font color="#D3D7CF"> code </font></span>  Importing the FastAPI app object from the module with the
             following code:

             <u style="text-decoration-style:solid">from </u><u style="text-decoration-style:solid"><b>main</b></u><u style="text-decoration-style:solid"> import </u><u style="text-decoration-style:solid"><b>app</b></u>

      <span style="background-color:#007166"><font color="#D3D7CF"> app </font></span>  Using import string: <font color="#3465A4">main:app</font>

   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Server started at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font>
   <span style="background-color:#007166"><font color="#D3D7CF"> server </font></span>  Documentation at <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000/docs</u></font>

      <span style="background-color:#007166"><font color="#D3D7CF"> tip </font></span>  Running in development mode, for production use:
             <b>fastapi run</b>

             Logs:

     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Will watch for changes in these directories:
             <b>[</b><font color="#4E9A06">&apos;/home/user/code/awesomeapp&apos;</font><b>]</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Uvicorn running on <font color="#729FCF"><u style="text-decoration-style:solid">http://127.0.0.1:8000</u></font> <b>(</b>Press CTRL+C to
             quit<b>)</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started reloader process <b>[</b><font color="#34E2E2"><b>383138</b></font><b>]</b> using WatchFiles
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Started server process <b>[</b><font color="#34E2E2"><b>383153</b></font><b>]</b>
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Waiting for application startup.
     <span style="background-color:#007166"><font color="#D3D7CF"> INFO </font></span>  Application startup complete.

fastapiというコマンドラインプログラムは、FastAPI CLIです。

FastAPI CLIは、Pythonプログラムのパス(例: main.py)を受け取り、FastAPIインスタンス(一般的にはappという名前)を自動的に検出し、正しいインポートプロセスを決定し、それを実行します。

本番環境では、代わりにfastapi runを使用します。🚀

内部的に、FastAPI CLIは、高性能で本番環境に対応したASGIサーバーであるUvicornを使用しています。😎

fastapi dev

fastapi devの実行は、開発モードを開始します。

デフォルトでは、自動リロードが有効になっており、コードの変更時にサーバーが自動的にリロードされます。これはリソースを消費し、無効にした場合よりも不安定になる可能性があります。開発目的でのみ使用してください。また、IPアドレス127.0.0.1(自分自身と通信するためのIPアドレス、localhost)でリッスンします。

fastapi run

fastapi runの実行は、デフォルトでFastAPIを本番モードで開始します。

デフォルトでは、自動リロードは無効になっています。また、IPアドレス0.0.0.0(すべての利用可能なIPアドレスを意味します)でリッスンするため、マシンと通信できるすべての人に公開されます。これは、たとえばコンテナ内で本番環境として実行する場合の方法です。

ほとんどの場合、HTTPSを処理するために、その上に「ターミネーションプロキシ」を配置します。これはアプリケーションのデプロイ方法によって異なり、プロバイダーが処理してくれる場合や、自分で設定する必要がある場合があります。

ヒント

詳細については、デプロイメントドキュメントを参照してください。