2

我正在构建一个纯 json api,我想根据 post 参数缓存响应。有没有类似 VaryByQueryKeys 的方法?也许一些自定义缓存中间件或?

当然我可以使用 MemoryCache 但想知道也许有一些“内置”实践。

4

2 回答 2

0

当然不应该期望在 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;
    }

   }
于 2020-12-09T13:44:05.443 回答
0

在此处检查此线程: http Post 的 WebAPI 缓存

您真的需要 HttpPost 请求来满足您的要求吗?您是否考虑过使用 GET 请求然后利用客户端缓存?

于 2018-05-01T21:41:59.840 回答