bb1bbc2904e1b492f6354777cf65a6e5cdb4025f
- Introduced `ApiErrorTranslator` to normalize and translate API error messages, providing clearer feedback in French. - Updated all Filament pages (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer) to utilize the new error translation mechanism, improving user experience during API interactions. - Added validation for required fields before API calls, ensuring users receive immediate feedback when mandatory inputs are missing. - Implemented tracking properties to distinguish between "never searched" and "searched without results," enhancing the user interface. - Removed the obsolete `$results` property from the Articles page and added a new `$barcode` property to align with API requirements. - Updated documentation to reflect changes in API behavior and error handling, including new metadata returned by the `art_list` endpoint. - Added new tests to verify the functionality of the barcode handling and validation logic.
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
git clone <repo-url>
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 :
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
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 Logisticsapp/Services/LogisticsService.php: Service centralisé pour les appels HTTP vers l'APIapp/Filament/Pages/: Pages Filament du dashboarddatabase/migrations/: Migrations incluant la tableapi_request_logspour le suivi des requêtes
Documentation de l'API
- Documentation Postman
- Documentation interne :
documentation/documentation_api_logistics.md
Tests
php artisan test --compact
Formatage du code
vendor/bin/pint
Description
Languages
PHP
50.7%
Blade
47.9%
CSS
1.3%
JavaScript
0.1%