Aller au contenu

Capability HTTP

Le CLI crée dès l'installation tous les fichiers et packages du blueprint complet de cette capability, avec des repères pour les développeurs et les IA. Les fichiers existants sont préservés lors d'une relance.

Middlewares HTTP transverses pour FastAPI.

Objectif

Standardiser les comportements HTTP qui évitent les doubles mutations, améliorent le cache et sécurisent les mises à jour concurrentes.

Adapters

Adapter Usage
idempotency évite les doubles mutations POST
etag revalidation des lectures GET
cache-control headers de cache HTTP

Commande

Bash
1
2
3
arclith-cli add-adapter --capability http --adapter idempotency --yes
arclith-cli add-adapter --capability http --adapter etag --yes
arclith-cli add-adapter --capability http --adapter cache-control --yes

Configuration

YAML
# config/http.yaml
idempotency:
  enabled: true
  ttl_seconds: 86400
  required: false
etag:
  enabled: true
cache_control:
  get_single_max_age: 300
  get_list_max_age: 60

Comportements

Adapter Entrée Sortie
idempotency Idempotency-Key sur POST replay d'une réponse déjà traitée
etag If-Match, If-None-Match version attendue ou 304
cache-control méthode et chemin HTTP header Cache-Control adapté

Règles

  • En production multi-worker, associer ces middlewares à cache/redis.
  • Exiger Idempotency-Key sur les mutations critiques.
  • Utiliser ETag pour les ressources versionnées.
  • Mettre no-store sur les mutations et payloads sensibles.
  • Tester les headers publics dans les tests API.

Validation

Bash
1
2
3
4
curl -i -X POST http://127.0.0.1:8000/v1/items/ \
  -H "Idempotency-Key: demo-1" \
  -H "Content-Type: application/json" \
  -d '{}'

Suite

Lire API, puis HTTP.