Installation PostgreSQL
sudo apt update
sudo apt install -y postgresql
systemctl status postgresqlNew user
sudo -iu postgres createuser -P --interactive fernandoView:
Enter password for new role: *******
Enter it again: *******
Shall the new role be a superuser? (y/n) yNew database
createdb fernando -O fernandoConexion
psql -U fernando -d postgresExternal Conexion
psql -U fernando -d fernando -h localhost -p 5432Installation pgAdmin
Install the public key for the repository (if not done previously):
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpgCreate the repository configuration file:
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'Install for both desktop and web modes:
sudo apt install pgadmin4Install for desktop mode only:
sudo apt install pgadmin4-desktopInstall for web mode only:
sudo apt install pgadmin4-web Configure the webserver, if you installed pgadmin4-web:
sudo /usr/pgadmin4/bin/setup-web.shPara la documentación completa de todas las rutas de la API con ejemplos JSON y explicaciones detalladas, consulte el archivo API-DOCS.md.
Para información sobre el manejo de archivos e imágenes en el sistema, incluyendo configuración, endpoints y ejemplos de uso, consulte el archivo FileStorage.md.
Este módulo permite gestionar los perfiles de usuarios en el sistema. Cada perfil está asociado a un usuario específico y contiene información personal como descripción, fecha de nacimiento e imagen.
- Método: GET
- URL:
/perfiles - Descripción: Retorna una lista de todos los perfiles existentes en el sistema
- Respuesta Exitosa:
[ { "id": 1, "usuario_id": 123, "descripcion": "Descripción del perfil", "fecha_nacimiento": "1990-01-01", "img": "url_imagen" } ]
- Método: POST
- URL:
/perfiles - Descripción: Crea un nuevo perfil en el sistema
- Cuerpo de la Petición:
{ "usuario_id": 123, "descripcion": "Descripción del perfil", "fecha_nacimiento": "1990-01-01", "img": "url_imagen" } - Respuesta Exitosa (201 Created):
{ "id": 1, "usuario_id": 123, "descripcion": "Descripción del perfil", "fecha_nacimiento": "1990-01-01", "img": "url_imagen" }
- Método: GET
- URL:
/usuarios/{id}/perfiles - Descripción: Obtiene el perfil asociado a un usuario específico
- Método: POST
- URL:
/usuarios/{id}/perfiles - Descripción: Actualiza la información de un perfil existente
- Método: DELETE
- URL:
/usuarios/{id}/perfiles - Descripción: Elimina un perfil del sistema
- Método: POST
- URL:
/posts - Content-Type: multipart/form-data
- Parámetros:
- contenido: string (requerido)
- creadorId: number (requerido)
- grupoId: number (opcional)
- imagen: file (opcional)
- Notas:
- Tipos de archivo permitidos: jpg, jpeg, png, gif
- Tamaño máximo: 10MB
- Las imágenes se almacenan en
uploads/posts/YYYY/MM/ - Las URLs son accesibles vía
/uploads/posts/YYYY/MM/nombre-archivo
- Método: PUT
- URL:
/posts/{id} - Content-Type: multipart/form-data
- Parámetros:
- contenido: string (requerido)
- grupoId: number (opcional)
- imagen: file (opcional)
- Notas:
- Al actualizar con nueva imagen, la anterior se elimina automáticamente
- Mismos requisitos de formato y tamaño que en la creación
- Método: DELETE
- URL:
/posts/{id} - Descripción: Elimina el post y su imagen asociada del sistema
{
"id": "Long",
"usuario_id": "Long",
"descripcion": "String",
"fecha_nacimiento": "Date (formato: YYYY-MM-DD)",
"img": "String (URL de la imagen)"
}- El campo
fecha_nacimientodebe ser enviado en formato YYYY-MM-DD - El campo
imgdebe contener la URL completa de la imagen - El
usuario_iddebe corresponder a un usuario existente en el sistema - Todos los endpoints requieren autenticación
- Para el manejo de imágenes:
- Se validan los tipos MIME de los archivos
- Se generan nombres únicos para evitar colisiones
- Se organizan los archivos por año/mes
- Se eliminan las imágenes antiguas al actualizar o eliminar posts
- Los errores 500 indican problemas del servidor
- Los errores 404 indican que el recurso no fue encontrado
- Los errores 400 indican que la petición es inválida
- Para imágenes:
- Error 400 si el archivo está vacío
- Error 400 si el tipo de archivo no está permitido
- Error 400 si el tamaño excede el límite