Marvin bb1bbc2904 Refactor error handling and enhance API interactions across Filament pages
- 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.
2026-02-23 10:15:17 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00
2026-02-20 08:40:00 +01:00

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 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

Tests

php artisan test --compact

Formatage du code

vendor/bin/pint
Description
No description provided
Readme 2.5 MiB
Languages
PHP 50.7%
Blade 47.9%
CSS 1.3%
JavaScript 0.1%