API y Panel de Administración de Che, ¿hoy donamos?, realizado en Laravel.
-
Utilizamos el paquete Orchid el cual nos facilita la creacion de un panel administrador donde podemos gestionar los registros de nuestra base de datos de forma sencilla. Ademas nos permite poder validar ciertos recursos facilitando asi el analisis de los mismos.
-
Gestionamos la creacion de nuestra base de datos a travez de migraciones de laravel, estas estan ligadas a los modelos dentro de nuestra aplicacion.
Encontraran una coleccion de Postman con todos los endpoints de nuestra aplicacion. Tambien pueden verlo en formato online: https://www.postman.com/avionics-participant-66176292/workspace/proyecto-integrador-equipo-3
La autentificacion de la aplicacion esta basada en tokens y la seguridad en rutas dependientes de la presencia de estos tokens. Para una correcta gestion de la autentificacion utilizamos Sanctum.
Decidimos utilizar este metodo ya que se amolda a las necesidades del proyecto, ademas tiene cierta sencilles en su implementacion lo que agilizo el proceso de desarrollo.
Por el momento, el Panel de Administración utiliza el mismo servicio de autenticacion.
Las rutas de la API que necesitan autentificacion estas agrupadas bajo el middleware de Sanctum, en nuestro archivo de rutas.
Route::group(['middleware' => ['auth:sanctum']], function () {
// rutas protegidas aquí
});Todas las rutas puestas dentro del middleware estarán protegidas y solo podran ser accedidas si la autenticación via token es exitosa.
Las rutas que esten por fuera de este no tendran autentificacion.
Hemos utilizado las facilidades que nos da Eloquent para poder paginar los endpoints de nuestra API que devuelven grandes cantidades de recursos. Decidimos que el limite de registros enviados en un endpoint paginado seria de 10, un limite que del lado del cliente es aceptable.
Ejemplo de una endpoint con paginacion :
GET /api/donationsPara el almacenamiento y control de imagenes se decicdio utilizar el servicio de Cloudinary, este guarda los archivos dentro de la nube, evitando asi tener que alojarlos en nuestro storage local.
- Clonar este repositorio
git clone https://github.com/Anima-Tec/2021_Proyecto_Integrador_Equipo_3-Backend.git- Ir a la carpeta
rootdel proyecto
cd 2021_Proyecto_Integrador_Equipo_3-Backend- Instalar y actualizar las dependencias, utilizando composer
composer install
composer update- Crear un archivo
.envbasandote en el.env.exampley llenar estas variables de entorno.
CLOUDINARY_URL=
...
CLOUDINARY_UPLOAD_PRESET=
...
MAIL_HOST=
...
MAIL_PORT=
...
MAIL_USERNAME=
...
MAIL_PASSWORD=
...
MAIL_FROM_ADDRESS=
...
MAIL_FROM_NAME=
...
MAIL_CONTENT_MANAGMENT=- Correr las migraciones y seeders de nuestra base de datos
Las seeders es una forma de ingresar los datos minimos que la aplicacion necesita para correr correctamente.
php artisan migrate --seed- Levantar el servidor
php artisan serveCambiar las siguientes variables del .env para poder levantar el servico en produccion
APP_ENV=production
...
APP_DEBUG=false