Esta API fue creada para perimitir a los usuarios interactuar con publicaciones (Posts) en una red social, ofreciendo diferentes operaciones según si el usuario está registrado o no.
- Lenguaje: TypeScript
- Backend: Express.js
- Autenticación/Autorización: JWT
- Arquitectura: Tres capas (routers, servicios, acceso a datos)
- Base de Datos: PostgreSQL
- Acceso a Datos: Uso de pg
- Migraciones: Implementación con umzug
- Testing: Pruebas de endpoints con vitest y supertest
- Validación de Input: Uso de Zod
- Manejo de Errores: Middleware centralizado
- Manejo de Entorno: Uso de variables de entorno con - dotenv
La base de datos incluye tres tablas principales: Users, Posts y Likes, cada una con sus respectivos campos y relaciones.
La API ofrece endpoints para visualizar posts, interactuar con usuarios registrados, gestionar perfiles de usuario, y registro y autenticación de usuarios.
Para cada endpoint se detalla su descripción, parámetros, respuesta y ejemplos de uso.
-
Asegúrese de que sus versiones de NodeJS y npm estén actualizadas para Express ^4.19.2
-
Instalar dependencias: npm install or yarn Una pequeña introducción sobre la instalación.
Clone este repositorio
git clone https://github.com/codeableorg/postable-carusi99.git
Ir al directorio del proyecto
cd my-project
Instalar dependencias
npm install
Configura las variables de entorno en un archivo .env.
Iniciar el servidor
npm run start
utiliza los comandos que estan en tu Package.json para utilizar las migraciones crear tu base de datos, e insertar información a ella.
Important
debes tener instalada la base de datos de código abierto PostgreSQL.
👩💻 Insomnia es una aplicación de escritorio multiplataforma que te permite probar y depurar API RESTful y otros servicios web de una manera fácil y eficiente.
-
Instalación de Insomnia: Primero, descarga e instala Insomnia desde su sitio web oficial: Insomnia
-
Crear un nuevo espacio de trabajo: Abre Insomnia y crea un nuevo espacio de trabajo si aún no tienes uno. - Puedes nombrarlo como desees y organizar tus solicitudes en él.
-
Crear una nueva solicitud: Dentro de tu espacio de trabajo, puedes crear una nueva solicitud haciendo clic en el botón "+" en la barra lateral izquierda y seleccionando "New Request". Luego, ingresa la URL de la solicitud y selecciona el método HTTP adecuado (GET, POST, etc.).
- bcrypt (^5.1.1)
- dotenv (^16.3.1)
- express (^4.19.2)
- jsonwebtoken (^9.0.2)
- pg (^8.11.5)
- umzug (^3.8.0)
- vitest (^1.6.0)
- zod (^3.23.4)
Si deseas contribuir al proyecto, sigue estos pasos:
- Realiza un fork del repositorio.
- Crea una nueva rama (git checkout -b feature/nueva-funcionalidad).
- Realiza tus cambios y haz commits (git commit -am 'Agrega nueva funcionalidad').
- Sube tus cambios a la rama (git push origin feature/nueva-funcionalidad).
- Crea un nuevo Pull Request.
Este proyecto fue desarrollado por [email protected] y se basa en las especificaciones proporcionadas por Codeable Academy.