4. Exposer une API¶
Objectif: générer la configuration FastAPI avec la CLI, puis exposer CreateTodoPort et
ListTodosPort par HTTP.
Générer l'adapter¶
Depuis la racine du projet:
| Bash | |
|---|---|
Répondre aux prompts:
| Text Only | |
|---|---|
La CLI crée:
| Text Only | |
|---|---|
Sous-étapes¶
- Configurer FastAPI et les schémas HTTP
- Écrire les handlers HTTP
- Déclarer le router et brancher FastAPI
- Tester l'API
Rôle des fichiers API¶
| Fichier | Rôle |
|---|---|
config/adapters/inbound/fastapi.yaml |
Configure le transport HTTP généré par Arclith. |
adapters/inbound/schemas/todo_schema.py |
Définit les payloads et réponses HTTP. C'est le contrat exposé dans Swagger, pas le modèle métier. |
adapters/inbound/fastapi/handlers/todo_handlers.py |
Traduit HTTP vers CreateTodoCommand et ListTodosQuery, puis traduit les résultats en réponses Arclith. |
adapters/inbound/fastapi/routers/todo_router.py |
Déclare les routes, métadonnées OpenAPI, exemples, headers et statuts HTTP. |
adapters/inbound/fastapi/register.py |
Récupère les use cases via le container et branche le router dans l'application FastAPI. |
main.py |
Crée l'instance Arclith, l'application FastAPI et lance le transport API. |
Le handler voit les ports inbound; le router voit FastAPI; aucun des deux ne manipule directement
Repository[Todo].
Étape suivante: configurer FastAPI et les schémas HTTP.