Я хочу, чтобы мое ядро WEB ASP. NET кэшировало ответы для получения глаголов в ограниченном API.
Я нашел кое-что в официальной документации , но это включает внедрение IMemoryCache в мои контроллеры, а затем в каждом методе реализует кеш. Я хотел бы использовать ASP. NET Core Middlewares, но я нашел только способы для его реализации на стороне клиента .
Я хотел бы добавить в мой Configure при запуске что-то вроде этого:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//...
app.UseAuthentication();
app.UseInMemoryCache(); // it's the kind of code I would like to add
app.UseMvc(config =>
{
config.MapODataServiceRoute("odata", "odata", EdmModel.GetEdmModel());
config.Count().Filter().OrderBy().Expand().Select().MaxTop(null);
config.EnableDependencyInjection();
});
}
Итак, если для этого пользователя и URL-адреса в памяти есть кэш, это гипотетическое промежуточное ПО добавит его в ответ и затем закроет запрос, не вызывая next (), и затем, мой код контроллера не будет запущен.
Что я хочу:
- Библиотека, которая реализует такое поведение
- Библиотека, которая будет уважать аутентификацию приложения.
- Библиотека, которая будет учитывать параметры запроса OData (я думаю, если этот гипотетический кэш просто сохраняет в хеш-таблице пользователя и URL с параметрами OData, это не должно быть проблемой)
- Чтобы узнать, какое место в списке промежуточного программного обеспечения нужно разместить для этого промежуточного программного обеспечения.
Я пытался реализовать такое промежуточное программное обеспечение, но это довольно сложно. Есть много проблем, связанных с дредами. И я думаю, что никто не одобрил бы такой запрос на извлечение, с помощью реализации кэширования младшего разработчика.
Мы знаем о возможных проблемах с памятью, которые это может вызвать.