소스코드 : https://github.com/fastapi/fastapi-cli
FastAPI CLI를 사용하여 명령줄에서 FastAPI 앱을 실행하고 관리하세요. ?
FastAPI CLI 는 FastAPI 앱을 제공하고 FastAPI 프로젝트를 관리하는 등의 작업에 사용할 수 있는 명령줄 프로그램 fastapi
입니다.
FastAPI를 설치하면(예: pip install "fastapi[standard]"
) fastapi-cli
라는 패키지가 포함되며 이 패키지는 터미널에 fastapi
명령을 제공합니다.
개발을 위해 FastAPI 앱을 실행하려면 fastapi dev
명령을 사용할 수 있습니다.
$ fastapi dev main.py
INFO 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 [56345] using WatchFiles
INFO: Started server process [56352]
INFO: Waiting for application startup.
INFO: Application startup complete.
fastapi
라는 명령줄 프로그램은 FastAPI CLI 입니다.
FastAPI CLI는 Python 프로그램의 경로를 가져와서 FastAPI(일반적으로 app
이라고 함)를 사용하여 변수와 이를 가져오는 방법을 자동으로 감지한 다음 제공합니다.
프로덕션에서는 대신 fastapi run
사용합니다. ?
내부적으로 FastAPI CLI는 고성능, 프로덕션 지원 ASGI 서버인 Uvicorn을 사용합니다. ?
fastapi dev
fastapi dev
실행하면 개발 모드에서 실행됩니다.
기본적으로 자동 다시 로드가 활성화되어 있으므로 코드를 변경할 때 자동으로 서버를 다시 로드합니다. 이는 리소스 집약적이며 없는 경우보다 안정성이 떨어질 수 있으므로 개발용으로만 사용해야 합니다.
기본적으로 IP 주소 127.0.0.1
에서 수신 대기합니다. 이는 컴퓨터가 자체적으로( localhost
) 통신하는 IP입니다.
fastapi run
fastapi run
실행하면 기본적으로 프로덕션 모드에서 실행됩니다.
기본적으로 자동 다시 로드가 비활성화 되어 있습니다.
이는 사용 가능한 모든 IP 주소를 의미하는 IP 주소 0.0.0.0
에서 수신 대기하므로, 머신과 통신할 수 있는 모든 사람이 공개적으로 액세스할 수 있습니다. 이는 일반적으로 프로덕션(예: 컨테이너)에서 실행하는 방법입니다.
대부분의 경우 HTTPS를 처리하는 "종료 프록시"가 있어야 합니다. 이는 애플리케이션을 배포하는 방법에 따라 다르며, 공급자가 이 작업을 수행할 수도 있고, 사용자가 직접 설정해야 할 수도 있습니다. FastAPI 배포 설명서에서 이에 대해 자세히 알아볼 수 있습니다.
이 프로젝트는 MIT 라이선스 조건에 따라 라이선스가 부여됩니다.