API propia de personajes femeninos de anime, videojuegos y comics (clasificacion general), pensada como reemplazo de Jikan para tu aplicacion gacha. Devuelve nombre, edad, signo, fecha de nacimiento, origen, sinopsis y un valor de popularidad que puedes usar para calcular la rareza de cada carta.
Nota: este catalogo NO incluye contenido +18 / hentai por diseño.
Tu cadena de conexion de MongoDB fue compartida en texto plano en algun momento. Antes de desplegar este proyecto:
- Ve a MongoDB Atlas → Database Access → edita tu usuario
Recklesstream→ cambia la contraseña. - Nunca pegues la cadena completa (usuario+password) en chats, tickets o repos publicos.
- Este proyecto NUNCA trae la contraseña dentro del codigo: se lee desde
.env, que esta en.gitignore.
npm install
cp .env.example .envEdita .env y coloca tu cadena de conexion real (ya con la contraseña rotada):
MONGO_URI=mongodb+srv://usuario:NUEVA_PASSWORD@noloentenderias.uitwwng.mongodb.net/apiWaifu
PORT=3000
Esto borra la coleccion characters existente y carga el catalogo incluido (74 personajes):
npm run seednpm starto en modo desarrollo con recarga automatica:
npm run devEndpoint principal para tu gacha. Devuelve N personajes aleatorios.
count(opcional, default 5, maximo 50)tipo(opcional):anime|videojuego|comic
Ejemplo de respuesta:
{
"count": 5,
"characters": [
{
"_id": "...",
"nombre": "Nezuko Kamado",
"edad": 14,
"signo": "Aries",
"fechaNacimiento": "28-12",
"origen": "Demon Slayer",
"tipo": "anime",
"sinopsis": "...",
"popularidad": 90,
"imagenUrl": ""
}
]
}Listado paginado ordenado por popularidad descendente.
Obtiene un personaje especifico por su ID de Mongo.
Crea un nuevo personaje (para que sigas ampliando el catalogo con tus propios datos/imagenes).
Tienes 3 opciones, de mas automatica a mas control manual:
Despues de correr npm run seed, ejecuta:
npm run fetch-imagesEsto recorre tu base de datos, busca cada personaje en Wikipedia y guarda el ENLACE
a su imagen oficial (miniatura) en el campo imagenUrl. No descarga ni redistribuye
el archivo: tu API solo apunta a la URL publica de Wikipedia, igual que hacen muchas
apps y bots. Requiere Node 18+ (usa fetch nativo) y conexion a internet.
Al final del proceso te imprime una lista de los personajes para los que NO encontro imagen (paginas ambiguas, nombres poco comunes, etc.) para que los rellenes a mano.
Sube tus propias imagenes a un bucket (S3, Cloudinary, Firebase Storage) y llena
imagenUrl manualmente o via POST /api/characters.
Usa arte generado por IA o bajo licencia libre para evitar cualquier duda de derechos.
Nota: la opcion A depende de que Wikipedia tenga pagina e imagen para cada personaje; la cobertura suele ser buena para personajes populares (que es justo lo que necesitas para tu sistema de rareza) pero no perfecta al 100%.
- Sube este proyecto a un repo de GitHub (asegurate de que
.envNO se suba). - En Render, crea un "Web Service" apuntando al repo.
- Build command:
npm install - Start command:
npm start - En "Environment", agrega la variable
MONGO_URIcon tu cadena real (con password rotada). - Corre
npm run seeduna vez (puedes hacerlo localmente apuntando al mismo cluster, o como un "Job" de Render) para poblar la base de datos.
Todos los personajes viven en seed/seedData.js como un arreglo plano de objetos JS.
Para agregar mas, simplemente añade nuevos objetos siguiendo el mismo schema y vuelve a
correr npm run seed, o usa el endpoint POST /api/characters directamente en produccion.