.NET 7: Response’u built-in middleware ile önbellekleme — Output caching

.NET 7 Preview 6 ile yeni bir middleware duyuruldu. Bu middleware output caching’i yönetmenize yardımcı olacak bir built-in middleware.

Output caching nedir?

Output caching middleware’ın temel implementasyonu

Ardındansa IApplicationBuilder’da UseOutputCache extension metodu ile app’ın bunu kullanacağını belirtmeniz lazım

app.UseOutputCache();

Bunlardan sonra endpointlerinizde output caching konfigürasyonları yapabilirsiniz:

app.MapGet("/notcached", () => DateTime.Now.ToString());

app.MapGet("/cached", () => DateTime.Now.ToString()).CacheOutput();

/notcached endpoint’ine giden istekler o anki zamanı gösterecektir.

/cached endpoint’ine giden ilk istekte o anki zamanı alacaksınız, sonrasındaysa önbelleğe alınmış zamanı gösterecektir.

  • VaryByQuery
    VaryByQuery ile bir endpoint’e giden requestleri query parametresine göre önbelleğe almayı yönetebilirsiniz.
app.MapGet("/datetime", () => DateTime.Now.ToString()).CacheOutput(p => p.VaryByQuery("culture"));

/datetime endpoint’ine gidecek isteklerde query olarak iletilen culture parametresinin içindeki değere göre bir önbellekleme sağlayacak.
/datetime?culture=en
/datetime?culture= tr
şeklinde olan iki farklı request, farklı önbelleklerlemelere sahip olacak.

Fakat burada dikkat edilmesi gereken bir nokta var, /datetime endpoint’inin aldığı diğer query parametrelerinin ne olduğu yok sayılacaktır ve önbellekteki değer dönecektir. Yani, ?culture=en&parametre2=someValue, parametre2 önbellekteki veriyi ezmesi gereken bir değerse bile culture parametresine göre önbelleklendiği için önbelleklenen veri dönecektir.

VaryByQuery dışında önbelleklemeyi header veya belirleyeceğiniz değerler için de konfigüre etme şansınız var. Daha detaylı örnekler için şu projeye göz atabilirsiniz:

Aşağıdaki issuelardan da bu feature’ın gelişimini takip edebilirsiniz:

--

--

https://halilkocaoz.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store