Microservicio de Posts (Laravel) — Gestión CRUD de publicaciones protegida por validación de tokens proporcionada por un microservicio de autenticación externo.
- Betty Rodriguez
- Victor Villamarin
Asegúrate de tener instalado lo siguiente antes de comenzar:
- PHP 8.x (Compatible con Laravel 12)
- Composer
- PostgreSQL
- Extensiones PHP:
pdo_pgsql. - Postman para pruebas de API.
Sigue estos pasos en orden para levantar el proyecto:
Sitúate en tu carpeta de proyectos y ejecuta:
git clone https://github.com/saoricoder/MicroservicioPos_ExmPractico_1P.git
cd MicroservicioPos_ExmPractico_1PCopia el archivo de ejemplo. En PowerShell:
Copy-Item .env.example .envEdita el archivo .env y ajusta las siguientes variables clave (Base de datos y URL del servicio de Auth):
APP_NAME=PRY_POST_MICROSERVICIO
APP_ENV=local
APP_KEY=
APP_URL=http://localhost:8000
# Configuración de Base de Datos
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=db_post
DB_USERNAME=tu_usuario
DB_PASSWORD=tu_password
# URL del Microservicio de Autenticación (Externo)
AUTH_SERVICE_URL=http://localhost:8001Ejecuta los siguientes comandos para instalar las librerías de Laravel y generar la llave de encriptación:
composer install
php artisan key:generateEjecuta las migraciones para crear las tablas necesarias:
php artisan migrateNota: Si necesitas reiniciar la base de datos con datos de prueba (seeders), usa:
php artisan migrate:fresh --seed
Inicia el servidor local en el puerto 8000:
php artisan serve --port=8000El sistema depende de un flujo de autenticación externo. A continuación se describe el ciclo de vida de las peticiones.
Estas peticiones van dirigidas al microservicio de Auth (ej. puerto 8001).
| Método | Endpoint | Descripción |
|---|---|---|
POST |
/api/login |
Body: { "email": "...", "password": "..." }Devuelve el token necesario. |
Todas las peticiones requieren Header: Authorization: Bearer <TOKEN>
| Método | Endpoint | Descripción | Restricciones |
|---|---|---|---|
GET |
/api/posts |
Listar todos los posts | - |
POST |
/api/posts |
Crear un nuevo post | user_id se asigna desde el token |
GET |
/api/posts/{id} |
Ver detalle de un post | - |
PUT |
/api/posts/{id} |
Actualizar un post | Solo el propietario |
DELETE |
/api/posts/{id} |
Eliminar un post | Solo el propietario |
(Body para POST/PUT: { "title": "...", "content": "..." })
| Método | Endpoint | Descripción |
|---|---|---|
GET |
/api/validate-token |
Usada internamente por el middleware para validar el token contra el servicio de Auth. |
Se incluye una colección lista para usar en la carpeta del proyecto:
📂 postman/PRY_POST_MICROSERVICIO.postman_collection.json
Configuración en Postman:
- Importa la colección.
- Configura las variables de entorno/colección:
baseUrl:http://localhost:8000auth_url:http://localhost:8001(Donde corra tu servicio de auth)token: Pega aquí el token obtenido del login.
- Dependencia Externa: Este microservicio NO gestiona usuarios ni tokens. Depende de que
AUTH_SERVICE_URLesté configurado y el servicio de autenticación esté corriendo. - Middleware: El middleware
CheckAuthTokenintercepta las peticiones, valida el token con el servicio externo e inyecta eluser_idyauth_useren la request. - Error 503: Si el servicio de autenticación está apagado, la API responderá con
503 Authentication service unavailable.