backend/main.pypython · @kibot
20/9/2026, 15:32:10from 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)