# API Logistics Application Laravel 12 de test pour comprendre et documenter l'API Logistics (Flex/ESI Gescom). Elle fournit un dashboard Filament v5 permettant d'interroger les différents endpoints de l'API. ## Prérequis - PHP 8.4+ - Composer - Node.js et npm - MySQL - Connexion VPN vers ESI Cloud (obligatoire pour communiquer avec le serveur Logistics depuis un poste local) ## Installation ```bash git clone cd api-logistics composer install npm install cp .env.example .env php artisan key:generate ``` ## Configuration ### Base de données Créer une base de données MySQL nommée `api_logistics`, puis configurer le fichier `.env` : ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=api_logistics DB_USERNAME=root DB_PASSWORD= ``` Exécuter les migrations : ```bash php artisan migrate ``` ### API Logistics Configurer la connexion à l'API Logistics dans le fichier `.env` : ``` LOGISTICS_API_BASE_URL=http://tse-10-test.esiweb.pro LOGISTICS_API_KEY=votre-cle-api LOGISTICS_API_FOLDER=esigescom ``` - **LOGISTICS_API_BASE_URL** : URL de base du serveur Logistics - **LOGISTICS_API_KEY** : Clé API transmise via le header `X-API-KEY` - **LOGISTICS_API_FOLDER** : Nom du dossier (en minuscules) utilisé dans les routes de l'API ## Démarrage ```bash npm run build ``` L'application est disponible à l'adresse `http://api-logistics.test`. Le dashboard Filament est accessible à l'adresse `http://api-logistics.test/admin`. ## Structure du dashboard Le dashboard Filament propose les pages suivantes : - **Documentation** : Documentation de l'API Logistics - **Tables** : Explorer les tables disponibles dans l'API et visualiser leurs colonnes - **Articles** : Rechercher des articles et vérifier le stock - **Documents** : Lister des documents et consulter leurs détails - **Journaux** : Rechercher et lister les journaux - **Tiers** : Rechercher des tiers et consulter l'historique des articles ## Architecture technique - `config/logistics.php` : Configuration de l'API Logistics - `app/Services/LogisticsService.php` : Service centralisé pour les appels HTTP vers l'API - `app/Filament/Pages/` : Pages Filament du dashboard - `database/migrations/` : Migrations incluant la table `api_request_logs` pour le suivi des requêtes ## Documentation de l'API - [Documentation Postman](https://documenter.getpostman.com/view/40440561/2sB2qaj2Pz) - Documentation interne : `documentation/documentation_api_logistics.md` ## Tests ```bash php artisan test --compact ``` ## Formatage du code ```bash vendor/bin/pint ```