refactor(api): refactor API module with route definitions and response utilities

Restructure the core API module to improve clarity, consistency, and
maintainability:

- Introduce `defineApiRoutes()` helper for declarative route definitions
  with built-in config validation at startup
- Add `apiSuccess()` / `apiError()` response utilities; enforce their
  use across all handlers (core and modules)
- Move auth enforcement to route definitions (`auth: 'public' | 'user' |
  'admin'`), removing manual auth checks from handlers
- Extract core routes into `core-routes.js`; router now has no knowledge
  of specific features
- Rename `nx-route.js` to `route-handler.js` and update package.json
  export accordingly
- Update ARCHITECTURE.md to reflect new API conventions and point to
  `src/core/api/README.md` for details
This commit is contained in:
2026-04-13 15:13:03 -04:00
parent 89741d4460
commit 4ddf834990
25 changed files with 1261 additions and 1185 deletions
+1 -1
View File
@@ -31,4 +31,4 @@ Ces modules existent pour éviter la duplication. Avant d'écrire du code utilit
**Tâches planifiées** — Utiliser `src/core/cron` pour créer des tâches cron.
**API** — Utiliser `src/core/api` pour l'API admin et publique. Toujours définir l'API privée/admin en premier, puis exposer seulement ce qui doit l'être. Toujours vérifier l'authentification sur les routes qui l'exigent.
**API** — Utiliser `src/core/api` pour l'API admin et publique. Définir les routes avec `defineApiRoutes()` (valide la config au démarrage). L'authentification est déclarée dans la définition de route (`auth: 'public' | 'user' | 'admin'`) — ne jamais la vérifier manuellement dans un handler. Retourner `apiSuccess()` / `apiError()` dans tous les handlers. Voir `src/core/api/README.md` pour le détail.
+56
View File
@@ -0,0 +1,56 @@
# Conventions de commit
Tous les messages de commit sont rédigés en **anglais**, en suivant le format [Conventional Commits](https://www.conventionalcommits.org/) :
```
<type>(<scope>): <description courte>
```
---
## Types
| Type | Usage |
|------|-------|
| `feat` | New feature |
| `fix` | Bug fix |
| `refactor` | Code restructuring without behavior change |
| `style` | Formatting only (spaces, commas, no logic change) |
| `docs` | Documentation only |
| `test` | Add or update tests |
| `chore` | Maintenance, dependencies, build config |
| `perf` | Performance improvement |
| `revert` | Revert a previous commit |
---
## Exemples
```
feat(auth): add OAuth2 login support
fix(api): handle null response from payment gateway
refactor(storage): extract upload logic into helper
docs(guide): add git commit message conventions
chore(deps): update dependencies
perf(db): cache user metadata on repeated reads
revert: revert "feat(auth): add OAuth2 login support"
```
---
## Règles
- **Scope** : facultatif, précise la zone touchée `auth`, `api`, `storage`, `ui`, `config`
- **Description** : minuscules, sans point final, en anglais
- Un commit = une intention. Ne pas mélanger fix et refactor
- Pas de `wip`, `fix fix`, `oups` ou messages vides
## Breaking changes
Ajouter `!` après le type et un pied de page `BREAKING CHANGE:` :
```
feat(api)!: remove legacy query parameter
BREAKING CHANGE: the `legacy` param is no longer accepted, use `version` instead.
```
-16
View File
@@ -16,22 +16,6 @@ Tout ce qui est **visible par l'utilisateur** est en **français** :
- Slugs et noms de dossiers qui correspondent à des routes URL
- Documentations, README.md
## Messages de commit Git
Tous les messages de commit doivent être rédigés en **anglais**, en suivant le format conventional commits :
```
<type>(<scope>): <description courte>
```
Types courants : `feat`, `fix`, `refactor`, `style`, `docs`, `test`, `chore`
Exemples :
- `feat(auth): add OAuth2 login support`
- `fix(api): handle null response from payment gateway`
- `docs(guide): add git commit message conventions`
- `chore(deps): update dependencies`
## Guide de rédaction
Se référer à `REDACTION.md` avant de rédiger tout contenu textuel.