Skip to content

Masterivan503/blog-api-ivan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# 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
  1. Instala dependencias
npm install
# o
yarn install
  1. Crea un archivo .env en 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"
  1. Genera el cliente de Prisma y ejecuta migraciones
npx prisma generate
npx prisma migrate dev --name init

Si quieres inspeccionar un esquema ya existente:

npx prisma db pull
  1. (Opcional) Ejecuta seeds si existen
npm run prisma:seed
# o según el script definido en package.json
  1. Ejecuta la aplicación
npm run dev
# o
npm start

Ubicación del esquema Prisma

El 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.

Ejemplos de endpoints (ejemplo genérico)

  • 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}'

Buenas prácticas con Prisma

  • Mantén prisma/schema.prisma como 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 generate como paso en el CI/build.

Testing

Incluye pruebas unitarias / e2e según el stack (Jest, Vitest, etc.). Añade scripts en package.json:

npm test

Contribuir

Si quieres mejorar el proyecto:

  1. Haz fork y abre una rama nueva para tu feature/bugfix.
  2. Asegúrate de que las migraciones y prisma generate funcionen.
  3. Abre un PR describiendo los cambios y cualquier paso de migración necesario.

Licencia

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.

About

Aprendiendo a usar schema.prisma

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published