Aller au contenu principal

Performance

GZip

devraitIl est pertinent de supporter le format de compression gzip pour optimiser les performances.

La compression gzip permet de gagner de 60 à 80% de la bande passante.

Avantage supplémentaire : l'intérêt de "minifier" le JSON de réponse devient négligeable en terme de performance, il devient ainsi tout à fait acceptable de répondre avec un JSON "lisible" pour un humain (espaces, indentation, pretty print).

Stateless

Le fait de maintenir une session dans une application web a d'importantes conséquences sur son comportement : fragilisation, surconsommation mémoire, nécessité de gérer un timeout, risque sécuritaire

doitUne application propulsant une API se doit d'être stateless pour permettre la scalabilité du système.

Les APIs ne se conçoivent pas comme un site web, on ne préjuge pas du "parcours", on fournit des services : il n'y a aucune raison d'avoir besoin de mémoriser un état entre deux requêtes.

Si une telle situation se produit (cas exceptionnel, transaction longue, …), il convient de réfléchir à une solution alternative : on fait le plus souvent porter l'état par le client.

Cache

optionSi la ressource le permet (idempotence et durée de vie de la donnée maîtrisée), proposer un mécanisme de cache aux consommateurs visant à répondre rapidement sans avoir besoin de traverser toutes les couches de l'architecture logique pour obtenir les données (base, SI, …).

Les deux approches recensées pour implémenter une politique de cache sont : ETag et Last-Modified