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/donations
Para 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
root
del proyecto
cd 2021_Proyecto_Integrador_Equipo_3-Backend
- Instalar y actualizar las dependencias, utilizando composer
composer install
composer update
- Crear un archivo
.env
basandote en el.env.example
y 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 serve
Cambiar las siguientes variables del .env
para poder levantar el servico en produccion
APP_ENV=production
...
APP_DEBUG=false