Refactor health check DTOs around a common CheckResult contract and remove the\nlegacy HealthChecks aggregate object.\n\nAdd a dedicated /api/v1/health/oracle endpoint with response mapping, OpenAPI\nschema updates, and Bruno request coverage.\n\nAlign feature, unit, integration, architecture and OpenAPI tests with the new\nset-based checks representation and make Oracle health tests deterministic in CI.\n\nUpdate command documentation to the uwil:* command namespace. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
76 lines
3.3 KiB
Markdown
76 lines
3.3 KiB
Markdown
# Arcadia API
|
|
|
|
**Arcadia API** est une API de référence conçue selon les principes de la **Clean Architecture**, du **Domain-Driven Design (DDD)** et de l'**Architecture Hexagonale (Ports & Adapters)**.
|
|
|
|
---
|
|
|
|
## 📚 Documentation pour les Développeurs
|
|
|
|
L'ensemble de la documentation technique et des guides pratiques est organisé dans le dossier [`documentation/`](documentation/) :
|
|
|
|
### 🏛️ Architecture & Fonctionnement
|
|
- **[01 - Architecture Globale](documentation/Architecture/01-architecture-globale.md)** : Vue d'ensemble des couches (`Domain`, `Application`, `Presentation`, `Infra`, `Shared`), responsabilités et règles de dépendances strictes.
|
|
- **[02 - Cycle de Vie d'une Requête (Bullet Tracer)](documentation/Architecture/02-cycle-de-vie-requete.md)** : Traçage pas-à-pas d'une requête HTTP depuis la route jusqu'à la sérialisation JSON.
|
|
- **[03 - Exécution, Transactions & Événements](documentation/Architecture/03-execution-et-transactions.md)** : `UsecaseBuilder`, `LaravelExecutor`, exécution transactionnelle et dispatch sécurisé post-commit (`TransactionalDomainEventDispatcher`).
|
|
- **[04 - Guide Nouveau Cas d'Usage](documentation/Architecture/04-guide-nouveau-usecase.md)** : Checklist pas-à-pas pour créer une nouvelle fonctionnalité de bout en bout.
|
|
- **[05 - Temps, Horloge PSR-20 & Base de Données](documentation/Architecture/05-temps-et-base-de-donnees.md)** : Contrat PSR-20 `Clock`, Façade `Utc`, tests avec `FrozenClock`, standardisation `DATETIME` et dérivation `created_at` depuis UUIDv7.
|
|
|
|
### 📐 Conventions & Standards
|
|
- **[Conventions de Tests](documentation/Conventions/tests.md)** : Principes F.I.R.S.T., structure GWT, pyramide de tests, **Test Data Builders** et **Object Mothers**.
|
|
- **[Gestion des Exceptions](documentation/Conventions/exceptions.md)** : Matrice de correspondance entre exceptions applicatives/domaine et codes HTTP RFC 7807 (400, 404, 409, 422, 429, 500).
|
|
|
|
### 🗄️ Métamodèle & Intégration Oracle
|
|
- **[Métamodèle Arcadia & Intégration Oracle](documentation/Arcadia/README.md)** : Guide d'intégration, requêtes SQL de référence et pointage vers la documentation vivante (`database/arcadia-replicate/`).
|
|
|
|
---
|
|
|
|
## 🚀 Commandes Utiles
|
|
|
|
### Développement & Qualité de Code
|
|
|
|
```bash
|
|
# Lancer la suite de tests Pest
|
|
composer test
|
|
|
|
# Lancer l'analyse statique PHPStan (Niveau 10)
|
|
vendor/bin/phpstan analyse
|
|
|
|
# Vérifier le formattage du code PSR-12 (Pint)
|
|
vendor/bin/pint --test
|
|
|
|
# Verifier les conventions et regles de lint (PHP Code Sniffer)
|
|
vendor/bin/phpcs
|
|
|
|
# Corriger automatiquement les conventiosn (PHP Code Beautifier)
|
|
vendor/bin/phpcbf
|
|
```
|
|
|
|
### Gestion de l'Application Arcadia
|
|
|
|
|
|
```bash
|
|
# Vérifier l'état de l'application
|
|
php artisan uwil:health
|
|
|
|
# List all Arcadia brands
|
|
php artisan uwil:arcadia:brand:list
|
|
|
|
# List all Arcadia clients
|
|
php artisan uwil:arcadia:client:list
|
|
|
|
# Create a new Arcadia client (interactive wizard)
|
|
php artisan uwil:arcadia:client:create
|
|
|
|
# Regenerate the secret of an API client
|
|
php artisan uwil:arcadia:client:regenerate-secret
|
|
|
|
# Toggle the status of an API client
|
|
php artisan uwil:arcadia:client:toggle-status
|
|
|
|
# Check schema and query conformity of the replicated Arcadia Oracle database
|
|
php artisan uwil:arcadia:database:check-conformity
|
|
|
|
# Display or export security audit events since a specified date
|
|
php artisan uwil:arcadia:security:audit-logs
|
|
|
|
```
|