Capability API¶
Transport HTTP REST exposé via FastAPI.
Objectif¶
L'API est un adapter inbound. Elle traduit HTTP vers les ports inbound ou les use cases. Elle ne contient pas la logique métier et ne dépend pas d'un repository concret.
Adapter¶
| Adapter | Usage |
|---|---|
fastapi |
application FastAPI créée par Arclith.fastapi() |
Commande¶
| Bash | |
|---|---|
Configuration Générée¶
Créer L'application¶
| Python | |
|---|---|
Arclith.fastapi() configure le titre, la version et la description depuis la
configuration applicative. Il ajoute aussi les middlewares HTTP et
l'observabilité activés.
Écrire Une Route¶
| Python | |
|---|---|
La route valide et convertit le payload HTTP, appelle un use case, puis convertit le résultat en réponse HTTP.
Auth¶
| Python | |
|---|---|
Quand Keycloak est configuré, Swagger UI reçoit le flow OAuth2 PKCE et les routes protégées utilisent la même validation JWT.
Probes Et Observabilité¶
Si probe/server est actif, lancer l'API avec les probes :
| Python | |
|---|---|
Le port API sert le métier. Le port probe sert /health, /ready, /info et
/metrics.
Règles¶
- Une route appelle un port inbound ou un use case.
- Une route ne crée pas de repository concret.
- Les erreurs métier doivent être converties en erreurs HTTP explicites.
- Les middlewares HTTP transverses sont dans la capability http.
- Les contrats HTTP publics doivent être testés avec
TestClientouhttpx.
Validation¶
| Bash | |
|---|---|
Suite¶
Lire http, auth, puis Deep Dive API.