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
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.
FastAPI CLI приймає шлях до Вашої Python програми (напр. main.py) і автоматично виявляє екземпляр FastAPI (зазвичай названий app), обирає коректний процес імпорту, а потім обслуговує його.
Натомість, для запуску у продакшн використовуйте fastapi run. 🚀
Всередині FastAPI CLI використовує Uvicorn, високопродуктивний, production-ready, ASGI cервер. 😎
За замовчуванням, автоматичне перезавантаження увімкнене, автоматично перезавантажуючи сервер кожного разу, коли Ви змінюєте Ваш код. Це ресурсо-затратно, та може бути менш стабільним, ніж коли воно вимкнене. Ви повинні використовувати його тільки під час розробки. Воно також слухає IP-адресу 127.0.0.1, що є IP Вашого девайсу для самостійної комунікації з самим собою (localhost).
Виконання fastapi run запустить FastAPI у продакшн-режимі за замовчуванням.
За замовчуванням, автоматичне перезавантаження вимкнене. Воно також прослуховує IP-адресу 0.0.0.0, що означає всі доступні IP адреси, тим самим даючи змогу будь-кому комунікувати з девайсом. Так Ви зазвичай будете запускати його у продакшн, наприклад у контейнері.
В більшості випадків Ви можете (і маєте) мати "termination proxy", який обробляє HTTPS для Вас, це залежить від способу розгортання вашого додатку, Ваш провайдер може зробити це для Вас, або Вам потрібно налаштувати його самостійно.