Desarrollo de FastAPI con VS Code

VS Code (nombre completo Visual Studio Code) es un editor de código gratuito, de código abierto y multiplataforma desarrollado por Microsoft.

VS Code es compatible con Windows, macOS y Linux, y cuenta con potentes funciones y una gran flexibilidad de extensión.

Tutorial de VS Code:https://www.example.com/vscode/vscode-tutorial.html

Dirección de descarga:https://code.visualstudio.com/ 。

Se recomienda instalar las siguientes extensiones:

  • Python (Microsoft)
  • Pylance (Microsoft)
  • FastAPI Snippets

Además, Alibaba y ByteDance en China también tienen IDEs de IA basados en VS Code:

Crear entorno virtual

Primero podemos preparar el entorno de desarrollo de Python; si ya está instalado o configurado, puedes omitirlo.

Instalar FastAPI y Uvicorn

pip install fastapi uvicorn

Crear una aplicación FastAPI

En el directorio fastapi-demo, crea unmain.pyarchivo, con el siguiente código:

Ejemplo

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, FastAPI!"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Ejecutar la aplicación

uvicorn main:app --reload

Explicación de parámetros:

  • main: nombre del módulo de Python (sin .py)
  • app: nombre de la variable de instancia de FastAPI
  • --reload: habilita la recarga automática durante el desarrollo

Acceder a la API

  • Abre el navegador y visitahttp://127.0.0.1:8000
  • Documentación interactiva:http://127.0.0.1:8000/docs
  • Documentación alternativa:http://127.0.0.1:8000/redoc

Consejos de desarrollo con VS Code

En VS Code, selecciona el menúFile > Open Folder…, abre la carpeta fastapi-demo que acabas de crear.

Al abrir el proyecto por primera vez, VS Code preguntará "¿Confiar en este espacio de trabajo?", selecciona "Yes, I trust the authors" para asegurar que las extensiones y los recursos funcionen correctamente.

También puedes usarcode .el comando para abrir directamente en el directorio, . El símbolo representa el directorio actual:
code .

Crear requirements.txt

Nuevo archivo (File > New Text File o atajo de teclado⌘N), o también puedes crearlo directamente con el icono de nuevo archivo a la derecha del nombre del proyecto:

Añade el siguiente contenido (dependencias del proyecto):

fastapi
redis
types-redis
uvicorn

Guarda el archivo (⌘S), nómbralo requirements.txt.

Crear entorno virtual

Crear entorno virtual

  • Abre la paleta de comandos (⇧⌘P)

  • Escribe y selecciona:Python: Create Environment

  • Selecciona el tipo de entorno:Venv(Entorno virtual integrado)

  • Selecciona la versión de Python (se recomienda usar la última versión local)

  • Seleccionarequirements.txtel archivo para instalar dependencias automáticamente

  • Haz clic en confirmar; el sistema creará el entorno virtual e instalará las dependencias automáticamente.

A continuación, podemos editar el archivo main.py:

Ejemplo

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello World"}

Presiona F5 para iniciar el depurador y ejecutar el código.

En el menú desplegable que aparece, selecciona la opción de configuración de depuración de FastAPI de la lista:

Esta acción creará automáticamente una configuración de depuración que utiliza uvicorn para iniciar el servidor de la aplicación a través del depurador, y te permite depurar el código fuente paso a paso para examinar su comportamiento.

Deberías ver información similar a la siguiente en la terminal:

En la terminal, haz Ctrl+clic en la URL mostrada http://127.0.0.1:8000/ para abrirla en el navegador.

Si el puerto predeterminado ya está en uso:

  • Detén el depurador
  • Abre la paleta de comandos (⇧⌘P), busca y seleccionaDebug: Add Configuration
  • SeleccionaPython Debugger, y luego seleccionaFastAPI
  • Esto se hará en.vscode/launch.jsonse creará un archivo de configuración personalizado
  • En"args":[]añade el siguiente contenido para configurar un puerto personalizado:
    "args": ["--port=5000"]

Sugerencias de estructura de proyecto

Para proyectos grandes, se recomienda la siguiente estructura:

my_fastapi_project/
├── app/
│   ├── __init__.py
│   ├── main.py         # 应用入口
│   ├── api/            # API路由
│   │   ├── __init__.py
│   │   ├── items.py
│   │   └── users.py
│   ├── models/         # 数据模型
│   │   ├── __init__.py
│   │   └── user.py
│   ├── schemas/        # Pydantic模型
│   │   ├── __init__.py
│   │   └── user.py
│   └── db/             # 数据库相关
│       ├── __init__.py
│       └── session.py
├── tests/              # 测试代码
│   ├── __init__.py
│   └── test_api.py
├── requirements.txt    # 依赖列表
└── .env                # 环境变量

Depuración y pruebas

Depurar FastAPI

En VS Code:

  1. Establecer puntos de interrupción
  2. Presiona F5 para iniciar la depuración
  3. Accede al endpoint de la API en el navegador

Pruebas unitarias

Usapytest:

Ejemplo

# test_main.py
from fastapi.testclient import TestClient
from main import app

client = TestClient(app)

def test_read_root():
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"message": "Hello, FastAPI!"}

Ejecutar las pruebas:

pytest

Preparación para el despliegue

Servidor de producción

Se recomienda usar:

  • Uvicorn + Gunicorn
  • Hypercorn
  • Daphne

Despliegue con Docker

CrearDockerfile:

FROM python:3.9

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]

Construir y ejecutar:

docker build -t fastapi-app .
docker run -d -p 80:80 fastapi-app
Otras extensiones