1

Nous effectuons beaucoup d'appels REST et souhaitons mettre en cache la plupart de ces appels. Quelles sont nos options actuelles? Le noyau ne supporte pas la mise en cache de sortie pour le moment, alors pouvons-nous utiliser la mise en cache des réponses ou la mise en cache distribuée pour cela? Si la mise en cache des réponses, le proxy inverse IIS en face de Kestrel peut-il être utilisé pour les scénarios de mise en cache des réponses? Merci! ASP.NET Core prend en chargeMise en cache des messages de réponse

Répondre

0

.

La mise en cache de sortie est prise en charge pour les vues Razor par le Cache Helper Tag - mais cela ne vous aide pas pour les appels REST.

Distribué ou Caching InMemory Mise en cache est un bon moyen pour stocker des informations qui coûte intensif pour récupérer à partir du niveau de persistance. Cela vous aidera sur le niveau de service, mais pas pour la mise en cache de sortie (bien sûr, vous pouvez faire votre propre middleware, si vous voulez). Le cache Helper Tag s'appuie également sur ces techniques.

La mise en cache des appels REST passe donc à Mise en cache de réponse. En résumé, il s'agit de savoir comment l'en-tête Cache-Control est défini dans la réponse. Si vous choisissez le ResponseCacheLocation.Any comme Location dans l'annotation ResponseCache de votre contrôleur (ou le CacheProfile), le public est utilisé comme Cache-Control et le proxy inverse est également autorisé à mettre en cache la réponse. Mais je n'ai pas essayé, si c'est le cas dans la combinaison de IIS et Kestrel.

Cette Blog Post est également une lecture intéressante sur ce sujet.