La creación de APIs para sistemas de reservas es una habilidad fundamental para desarrolladores que buscan implementar soluciones prácticas en el mundo real. En este contenido, exploraremos cómo construir una API completa para un consultorio médico, utilizando PostgreSQL como base de datos y configurando el entorno necesario para comenzar este emocionante proyecto. Esta API no solo permitirá a los usuarios registrarse y gestionar citas, sino que también proporcionará herramientas administrativas para una gestión eficiente del calendario médico.
¿Qué funcionalidades tendrá nuestra API de reservas médicas?
Antes de sumergirnos en el código, es importante entender el alcance y las capacidades que implementaremos en nuestra API. Este sistema estará diseñado para satisfacer las necesidades tanto de usuarios como de administradores en un entorno médico.
¿Qué podrán hacer los usuarios?
Los usuarios de nuestra API tendrán acceso a varias funcionalidades clave:
Registro y autenticación: Los usuarios podrán crear cuentas y acceder al sistema de manera segura.
Visualización de historial: Podrán ver un registro completo de sus citas anteriores.
Gestión de citas: Tendrán la capacidad de crear, actualizar y cancelar sus propias citas médicas.
¿Qué capacidades tendrá el administrador?
El rol de administrador contará con herramientas más avanzadas para la gestión del sistema:
Creación de bloques de citas: Podrá establecer nuevos horarios disponibles para reservas.
Gestión de servicios: Tendrá la capacidad de añadir o modificar los servicios ofrecidos.
Administración de reservas: Podrá listar y gestionar todas las reservas existentes en el sistema.
Un aspecto crucial de nuestra API será el manejador de conflictos, que garantizará que no existan colisiones entre usuarios que intenten reservar el mismo horario, manteniendo así la integridad del calendario.
¿Cómo configurar PostgreSQL para nuestra API?
PostgreSQL será nuestra base de datos relacional para este proyecto, proporcionando robustez y confiabilidad para almacenar toda la información necesaria.
¿Cómo instalar PostgreSQL?
Para comenzar, necesitamos instalar PostgreSQL en nuestro sistema:
Visita el sitio web oficial de PostgreSQL.
Descarga la versión adecuada para tu sistema operativo (se recomienda la versión 17 para este proyecto).
Sigue las instrucciones de instalación específicas para tu sistema:
Para Windows: Utiliza el instalador proporcionado.
Para macOS: Puedes usar Homebrew con brew install postgresql@17.
Para Linux: Sigue las instrucciones para tu distribución específica.
Es importante verificar que el servicio esté funcionando correctamente después de la instalación. En macOS, puedes usar el comando:
brew services list
Este comando mostrará si PostgreSQL está activo y funcionando correctamente.
¿Cómo verificar y configurar usuarios en PostgreSQL?
Una vez instalado, debemos verificar la versión y configurar los usuarios:
Verifica la versión instalada:
psql -V
Lista los usuarios existentes:
psql postgres -c "\du"
Este comando mostrará los usuarios disponibles en tu instalación de PostgreSQL.
Conéctate a la base de datos por defecto:
psql postgres
Establece una contraseña para tu usuario:
ALTERUSER tu_usuario WITH PASSWORD 'tu_contraseña';
Por ejemplo:
ALTERUSER gndx WITH PASSWORD 'db1234';
Nota importante: Para entornos de desarrollo local, puedes usar contraseñas simples como en el ejemplo, pero para producción, siempre utiliza contraseñas seguras generadas con un gestor de contraseñas y nunca reutilices las mismas credenciales que usas en desarrollo.
Una vez configurada la contraseña, ya tendremos nuestro PostgreSQL listo para ser utilizado en nuestra API. En la siguiente fase, trabajaremos con Prisma, un ORM (Object-Relational Mapping) que facilitará enormemente la interacción entre nuestra aplicación Express y la base de datos PostgreSQL.
La configuración adecuada de tu base de datos es el primer paso crucial para construir una API robusta y funcional. Con PostgreSQL correctamente instalado y configurado, estamos listos para avanzar hacia la implementación de nuestra API de reservas médicas utilizando herramientas modernas que simplifiquen el desarrollo.
¿Has trabajado antes con PostgreSQL o estás comenzando desde cero? Comparte tu experiencia en los comentarios y cuéntanos qué otros aspectos de desarrollo de APIs te gustaría aprender.
Construcción de una API para Reserva de Citas Médicas con PostgreSQL
Si no deseas instalar postgresql en tu maquina puedes hacer uso de Docker y descargar una imagen de postgres, así lo hicimos en la version anterior de este curso, se los comparto ya que me pareció bastante util tener otra alternativa ya que por ejemplo podrias en vez de postgres usar MySQL o otro motor sin estar haciendo instalaciones en nuestra maquina.
Para verificar que el servicio de PostgreSQL esté funcionando en WSL (Windows Subsystem for Linux), sigue estos pasos:
Abre tu terminal WSL.
Ejecuta el comando: sudo service postgresql status. Esto te mostrará el estado del servicio.
Si el servicio no está corriendo, puedes iniciarlo con: sudo service postgresql start.
Para comprobar la versión y asegurar que está funcionando, utiliza: psql -V.
Asegúrate de tener PostgreSQL instalado correctamente en tu WSL siguiendo las instrucciones para tu distribución específica.
Otra alternativa para Windows, porque para hacerlo desde PowerShell no reconoce psql directamente, sino que es necesario entrar al directorio cd "C:\Program Files\PostgreSQL\17\bin". También al instalar postgreSQL se instala SQL shell, en donde pueden usar los comandos directamente, por ejemplo, para ver los usuarios solo es \du.
Algo importante es que al principio te pedira estos datos:
Server [localhost]: localhost
Database [postgres]: postgres
Port [5432]: 5432 o el que asignaste al instalar.
Username [postgres]: postgres (El usuario por defecto con permisos de administrador)
Contraseña para usuario postgres: la que asignaste al instalar.
(Próximamente, me pasaré a Linux, pero no es mi compu :')
Saludos, estoy utilizando WSL y para seguir el video tuve que correr estos comandos para que me funcione:
sudo -u postgres psql -c "\du" > Listar usuarios
sudo -u postgres psql > Ingresar a postgres
Usando Docker y pueden usar TablePlus para conectarse a ella.
services:postgres:image: postgres:17container_name: container_name
environment:POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: database_name
ports:-"5432:5432"volumes:- postgres_data:/var/lib/postgresql/data
restart: no
volumes:postgres_data:driver: local
y como se hace desde la IU
sudo -u postgres createuser --interactive
Para crear el usuario y que aparezca en usuarios existentes...