Este proyecto Laravel proporciona una API para gestionar clientes y sus hobbies, con funcionalidades de autenticación y generación de PDFs usando DomPDF.
Clonar el Repositorio
git clone https://github.com/joseantoniopino/bloonde.git
cd bloonde
Copiar el Archivo .env
cp .env.example .env
Configurar el Archivo .env
.env
. Por ejemplo, configuración de la base de datos, puerto, etc.Construir y Levantar los Contenedores
docker-compose up -d --build
Instalar las Dependencias
docker-compose run --rm bloonde composer install
Nota: el proyecto usa laravel sail, una vez tengas instaladas las dependencias, puedes usar
sail
en lugar dedocker-compose run --rm bloonde
para ejecutar los comandos.Se puede crear un alias para sail en el archivo
.bashrc
o.zshrc
:alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'
Mas información sobre sail en https://laravel.com/docs/11.x/sail Por ejemplo, el siguiente comando podría ser
sail artisan key:generate
Generar la Clave de la Aplicación
docker-compose run --rm bloonde php artisan key:generate
Migrar la Base de Datos y Ejecutar Seeders
docker-compose run --rm bloonde php artisan migrate --seed
(optativo) Forzar cachés de docker con laravel sail
sail up -d
sail down
sail up -d
Token de Acceso: Se debe incluir el token de acceso en el encabezado Authorization
para realizar acciones protegidas. El token es tipo Bearer, el cual se obtiene al hacer login y se destruye al hacer logout
Para facilitar las pruebas de la API, se ha proporcionado una colección de Postman. La variable {{url}}
debe ser configurada como bloonde.test/api/v1
. (o usar localhost o el dominio que mapees en /etc/hosts).
File
> Import
.Bloonde Collection.postman_collection.json
y cárgalo.Registro
POST {{url}}/register
{
"email": "jose@test.com",
"password": "12345678",
"password_confirmation": "12345678"
}
Inicio de Sesión
POST {{url}}/login
{
"email": "jose@test.com",
"password": "12345678"
}
Cerrar Sesión
POST {{url}}/logout
Listar Clientes
GET {{url}}/customers
Mostrar Cliente Específico
GET {{url}}/customers/{id}
Crear Cliente
POST {{url}}/customers
{
"name": "Tyrion",
"surname": "Lannister",
"hobbies": [2, 3],
"user_id": 3
}
Actualizar Cliente
PUT {{url}}/customers/{id}
{
"name": "Juan",
"surname": "Nadie",
"hobbies": [2, 3]
}
Eliminar Cliente
DELETE {{url}}/customers/{id}
Obtener Clientes por Hobby
GET {{url}}/customers-by-hobby?hobby_id=1
GET {{url}}/customers/pdf
Customer
) están relacionados con los usuarios (User
) a través de un user_id
.