Disons que vous créez une API pour servir certaines données, vous découvrez que les réponses GET sont assez lentes. Vous avez essayé d'optimiser vos requêtes, d'indexer les tables de votre base de données par colonnes fréquemment interrogées et vous n'obtenez toujours pas les temps de réponse souhaités. La prochaine étape à franchir consiste à écrire une couche de mise en cache pour votre API. « Couche de mise en cache » n'est ici qu'un terme sophistiqué pour désigner un middleware qui stocke les réponses réussies dans unrapide à récupérermagasin. par ex. Redis, Memcached, etc., toute autre demande adressée à l'API vérifie si les données sont disponibles dans le magasin et fournit la réponse.
Je suppose que si vous êtes arrivé ici, vous savez comment créer une application Laravel. Vous devez également disposer d’une instance Redis locale ou cloud à laquelle vous connecter. Si vous avez Docker localement, vous pouvez copier mon fichier de composition ici. Aussi, pour un guide sur la façon de se connecter au pilote de cache Redis, lisez ici.
Pour nous aider à voir que notre couche de mise en cache fonctionne comme prévu. bien sûr, nous avons besoin de données, disons que nous avons un modèle nommé Post. je vais donc créer quelques articles, j'ajouterai également un filtrage complexe qui pourrait nécessiter beaucoup de base de données et nous pourrons ensuite optimiser par mise en cache.
Commençons maintenant à écrire notre middleware :
Nous créons notre squelette middleware en exécutant
php artisan make:middleware CacheLayerEnregistrez-le ensuite dans votre app/Http/Kernel.php sous le groupe middleware API comme ceci :
protected $middlewareGroups = [ 'api' => [ CacheLayer::class, ], ];Mais si vous utilisez Laravel 11, enregistrez-le dans votre bootstrap/app.php
->withMiddle...
[Courte citation de 8% de l'article original]