我正在构建一个纯 json api,我想根据 post 参数缓存响应。有没有类似 VaryByQueryKeys 的方法?也许一些自定义缓存中间件或?
当然我可以使用 MemoryCache 但想知道也许有一些“内置”实践。
我正在构建一个纯 json api,我想根据 post 参数缓存响应。有没有类似 VaryByQueryKeys 的方法?也许一些自定义缓存中间件或?
当然我可以使用 MemoryCache 但想知道也许有一些“内置”实践。
当然不应该期望在 post API 中缓存
但是看看这个不在中间件中的特殊控制器上的示例代码,它不是“内置”的
可能有用
public class XController : Controller
{
private readonly IMemoryCache _cache;
public XController(IMemoryCache cache)
{
_cache = cache;
}
[HttpPost]
public async Task<IEnumerable<YourCustomModel>> Post([FromBody] ParamtersModel value)
{
string cacheKey = value.Id.ToString();
IEnumerable<YourCustomModel> cacheEntry = await _cache.GetOrCreate(cacheKey, async entry =>
{
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(60);
IEnumerable<YourCustomModel> result = await ... your method calling for first time to getting in cache
return result;
});
return cacheEntry;
}
}
在此处检查此线程: http Post 的 WebAPI 缓存
您真的需要 HttpPost 请求来满足您的要求吗?您是否考虑过使用 GET 请求然后利用客户端缓存?