Retour au développement d'API

Développement d'API

Performance et évolutivité

Des réponses rapides sous charge, sans payer une capacité inutilisée

Stratégies de mise en cache

La requête la plus rapide est celle qui n'atteint jamais la base de données. Nous concevons le cache couche par couche et décidons pour chaque point de terminaison du niveau de fraîcheur requis.

Où une requête obtient sa réponse

Client
Azure Front Door (CDN)transmet
API · output cachetransmet
Azure Cache for Redistransmet
Azure SQLrépond

Exemple illustratif

Chaque couche de cache capable de répondre évite d'aller plus loin. Un succès de cache en périphérie prend quelques millisecondes ; un aller-retour complet vers la base de données est dix fois plus lent.

Mise en cache HTTP

Exploiter la mise en cache navigateur et CDN avec les en-têtes HTTP :

  • Cache-Control: max-age=3600 - Cache pendant 1 heure
  • ETag - Requêtes conditionnelles avec If-None-Match
  • Last-Modified - Validation basée sur le temps
  • En-tête Vary pour mise en cache de négociation de contenu

Mise en cache côté serveur

  • Cache mémoire : IMemoryCache pour API mono-instance
  • Cache distribué : Redis pour déploiements multi-instances
  • Output caching : Mettre en cache les réponses entières
  • Data caching : Mettre en cache les résultats de requêtes base de données

Optimisation base de données

  • Pool de connexions : Réutiliser les connexions base de données
  • Requêtes async : Opérations base de données non bloquantes
  • Projection : Sélectionner uniquement les colonnes requises
  • Indexation : Créer des index sur colonnes fréquemment interrogées
  • Prévention N+1 : Utiliser eager loading ou batching
  • Réplicas de lecture : Échelonner les lectures avec réplicas de base de données

Compression et minification

  • Compression de réponse : Middleware de compression Gzip ou Brotli
  • Minification JSON : Supprimer les espaces des réponses JSON
  • Optimisation d'images : Compresser et redimensionner les images à la volée

Mise à l'échelle horizontale

  • Conception sans état : Stocker l'état de session externalement (Redis, Cosmos DB)
  • Équilibrage de charge : Azure Load Balancer ou Application Gateway
  • Auto-Scaling : Mise à l'échelle basée sur CPU, mémoire ou nombre de requêtes
  • Orchestration de conteneurs : Azure Kubernetes Service (AKS) pour microservices

Prêt à construire des API fiables et bien documentées ?

Voyons ensemble comment notre expertise en développement d'API peut renforcer votre écosystème numérique avec des services sécurisés, capables de monter en charge et agréables à utiliser pour les développeurs.