我需要根据查询字符串中的布尔值来决定是否缓存响应。不幸的是,我找不到这样的例子。你能帮助我吗?
问问题
31 次
1 回答
0
您可以为该场景创建一个自定义中间件,该中间件从查询中读取布尔值并根据该值缓存响应(无论可能是什么)。
您可以在此处阅读有关自定义中间件的信息。
您的中间件应如下所示:
public class OptionalCachingMiddleware
{
private readonly RequestDelegate _next;
private readonly IServiceProvider _services;
public OptionalCachingMiddleware(RequestDelegate next, IServiceProvider services)
{
_next = next;
_services= services;
}
public async Task InvokeAsync(HttpContext context)
{
var shouldCache = bool.Parse(context.Request.Query["your-query-parameter-name"]);
if (shouldCache)
{
var responseCache = _services.GetRequiredService<IResponseCache>();
// put your caching logic here
}
// Call the next delegate/middleware in the pipeline
await _next(context);
}
}
于 2021-11-15T14:53:50.940 回答