# blog-api-ivan
API de ejemplo para un blog — proyecto creado para aprender y practicar el uso de Prisma (schema.prisma), junto con Node.js y una base de datos relacional.
## Tecnologías
- Node.js
- TypeScript (opcional, ajustar según el repo)
- Prisma (ORM)
- PostgreSQL / MySQL / SQLite (configurable via DATABASE_URL)
- Express / Fastify / Koa (según la implementación)
## Estado
Proyecto en aprendizaje — enfoque en la definición del modelo con `prisma/schema.prisma`, migraciones y consultas básicas.
## Características
- Modelado de datos con Prisma (Users, Posts, Comments, Tags — ejemplo)
- Operaciones CRUD para recursos del blog
- Migraciones con Prisma Migrate
- Scripts para desarrollo y producción
## Requisitos
- Node.js >= 16
- npm o yarn
- Una base de datos compatible (Postgres, MySQL o SQLite)
## Configuración rápida
1. Clona el repositorio
```bash
git clone https://github.com/Masterivan503/blog-api-ivan.git
cd blog-api-ivan- Instala dependencias
npm install
# o
yarn install- Crea un archivo
.enven la raíz con la cadena de conexión a la base de datos:
DATABASE_URL="postgresql://user:password@localhost:5432/dbname?schema=public"
# o para SQLite
# DATABASE_URL="file:./dev.db"- Genera el cliente de Prisma y ejecuta migraciones
npx prisma generate
npx prisma migrate dev --name initSi quieres inspeccionar un esquema ya existente:
npx prisma db pull- (Opcional) Ejecuta seeds si existen
npm run prisma:seed
# o según el script definido en package.json- Ejecuta la aplicación
npm run dev
# o
npm startEl archivo principal de modelo suele estar en:
prisma/schema.prisma
Ahí defines los modelos (por ejemplo: User, Post, Comment) y configuraciones del datasource y generator.
- GET /posts — listar posts
- GET /posts/:id — obtener post por id
- POST /posts — crear post
- PUT /posts/:id — actualizar post
- DELETE /posts/:id — eliminar post
Ejemplo de creación con curl:
curl -X POST http://localhost:3000/posts \
-H "Content-Type: application/json" \
-d '{"title":"Mi primer post","content":"Contenido del post","authorId":1}'- Mantén
prisma/schema.prismacomo fuente de verdad. - Usa migraciones (
prisma migrate) en desarrollo y CI para sincronizar cambios. - Evita llamadas directas a la BD fuera del cliente de Prisma para mantener consistencia.
- Configura
prisma generatecomo paso en el CI/build.
Incluye pruebas unitarias / e2e según el stack (Jest, Vitest, etc.). Añade scripts en package.json:
npm testSi quieres mejorar el proyecto:
- Haz fork y abre una rama nueva para tu feature/bugfix.
- Asegúrate de que las migraciones y
prisma generatefuncionen. - Abre un PR describiendo los cambios y cualquier paso de migración necesario.
Añade la licencia que prefieras (MIT, Apache-2.0, etc.) — crea un archivo LICENSE.
Notas: este README es una plantilla orientativa pensada para un proyecto cuyo objetivo es aprender Prisma y construir una API de blog. Puedo adaptar el README al stack exacto del repositorio (Express vs Fastify, JavaScript vs TypeScript), añadir secciones específicas (Docker, GitHub Actions, ejemplos concretos de modelos Prisma) o generar un archivo listo para commitear y abrir un PR en tu repo.