Ctrl K
ComunidadGuías…
backend/main.pypython · @kibot
20/9/2026, 15:32:10
from fastapi import FastAPI, Depends, HTTPException
from pydantic import BaseModel
from typing import List, Optional
import uvicorn

app = FastAPI(title="NetFlux API", version="1.0.0")

# Modelos Pydantic (Definidos en models.py)
class Movie(BaseModel):
    id: int
    title: str
    description: Optional[str] = None
    poster_path: Optional[str] = None
    backdrop_path: Optional[str] = None
    release_date: Optional[str] = None
    duration: Optional[int] = None

class User(BaseModel):
    username: str
    email: str

class LoginResponse(BaseModel):
    access_token: str
    token_type: str = "bearer"

# Endpoints Básicos
@app.get("/health")
async def health_check():
    return {"status": "ok", "service": "NetFlux Backend"}

@app.get("/movies", response_model=List[Movie])
async def get_movies():
    # Simulación de datos iniciales
    movies = [
        Movie(id=1, title="Inception", description="Un ladrón que roba secretos industriales...", poster_path="/path1.jpg"),
        Movie(id=2, title="Interstellar", description="Un grupo de exploradores viaja a través de un agujero de gusano...", poster_path="/path2.jpg")
    ]
    return movies

@app.post("/auth/login", response_model=LoginResponse)
async def login(user: User):
    # Simulación de autenticación simple
    if user.username == "admin" and user.email == "admin@netflux.local":
        return LoginResponse(access_token="fake_jwt_token_12345")
    raise HTTPException(status_code=401, detail="Credenciales incorrectas")

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)

Comentarios de código