Перейти до змісту

FastAPI CLI

FastAPI CLI це програма командного рядка, яку Ви можете використовувати, щоб обслуговувати Ваш додаток FastAPI, керувати Вашими FastApi проектами, тощо.

Коли Ви встановлюєте FastApi (тобто виконуєте pip install "fastapi[standard]"), Ви також встановлюєте пакунок fastapi-cli, цей пакунок надає команду fastapi в терміналі.

Для запуску Вашого FastAPI проекту для розробки, Ви можете скористатись командою fastapi dev:

fast →fastapi dev main.pyINFO Using path main.py
INFO Resolved absolute path /home/user/code/awesomeapp/main.py
INFO Searching for package file structure from directories with __init__.py files
INFO Importing from /home/user/code/awesomeapp

╭─ Python module file ─╮
│ │
│ 🐍 main.py │
│ │
╰──────────────────────╯

INFO Importing module main
INFO Found importable FastAPI app

╭─ Importable FastAPI app ─╮
│ │
from main import app
│ │
╰──────────────────────────╯

INFO Using import string main:app

╭────────── FastAPI CLI - Development mode ───────────╮
│ │
│ Serving at: http://127.0.0.1:8000 │
│ │
│ API docs: http://127.0.0.1:8000/docs │
│ │
│ Running in development mode, for production use: │
│ │
fastapi run
│ │
╰─────────────────────────────────────────────────────╯

INFO: Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [2265862] using WatchFiles
INFO: Started server process [2265873]
INFO: Waiting for application startup.
INFO: Application startup complete.

restart ↻

Програма командного рядка fastapi це FastAPI CLI.

FastAPI CLI приймає шлях до Вашої Python програми (напр. main.py) і автоматично виявляє екземпляр FastAPI (зазвичай названий app), обирає коректний процес імпорту, а потім обслуговує його.

Натомість, для запуску у продакшн використовуйте fastapi run. 🚀

Всередині FastAPI CLI використовує Uvicorn, високопродуктивний, production-ready, ASGI cервер. 😎

fastapi dev

Використання fastapi dev ініціює режим розробки.

За замовчуванням, автоматичне перезавантаження увімкнене, автоматично перезавантажуючи сервер кожного разу, коли Ви змінюєте Ваш код. Це ресурсо-затратно, та може бути менш стабільним, ніж коли воно вимкнене. Ви повинні використовувати його тільки під час розробки. Воно також слухає IP-адресу 127.0.0.1, що є IP Вашого девайсу для самостійної комунікації з самим собою (localhost).

fastapi run

Виконання fastapi run запустить FastAPI у продакшн-режимі за замовчуванням.

За замовчуванням, автоматичне перезавантаження вимкнене. Воно також прослуховує IP-адресу 0.0.0.0, що означає всі доступні IP адреси, тим самим даючи змогу будь-кому комунікувати з девайсом. Так Ви зазвичай будете запускати його у продакшн, наприклад у контейнері.

В більшості випадків Ви можете (і маєте) мати "termination proxy", який обробляє HTTPS для Вас, це залежить від способу розгортання вашого додатку, Ваш провайдер може зробити це для Вас, або Вам потрібно налаштувати його самостійно.

Tip

Ви можете дізнатись більше про це у документації про розгортування.