WebAPI核心2.0缓存邮件参数

时间:2018-05-01 16:19:17

标签: caching asp.net-web-api asp.net-core-2.0 httpresponsecache asp.net-core-2.1

我正在构建一个纯粹的json api,我想根据post params缓存响应。是否有像VaryByQueryKeys类似的方式? 也许是一些自定义缓存中间件或?

当然我可以使用MemoryCache但是想知道可能有一些“内置”练习。

2 个答案:

答案 0 :(得分:0)

点击此处查看此主题: WebAPI caching for http Post

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

答案 1 :(得分: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;
    }

   }