使用缓存母牛在webapi2中实现ETags

时间:2018-06-26 14:35:01

标签: etag cachecow

我正在尝试在ASP NET WEB API2中实现ETags [实体标签]概念 使用CacheCow.server v 1.2.3。

这里的API是

[HttpGet]
        [Route("api/ETags/GetTag")]
        public async Task<IHttpActionResult> GetTag()
        {
            var result = SqlHelper.QuerySp<Role>("GetTestRoles", null, connectionString: ConfigurationManager.ConnectionStrings["Test"].ToString());
            return await Task.FromResult(Ok(result));  //  await Task.FromResult(result);
        }

第一次运行,它给出200 OK,这很好。 下一次旅行给我304 Not Modified and cached resposne 这也很好。 但是我还有另一个API

[HttpGet]
        [Route("api/ETags/PostTag")]
        public async Task<IHttpActionResult> PostTag()
        {
            Random rnd = new Random();
            int number = rnd.Next(1, 103);

            var param = new DynamicParameters();
            param.Add("@Id", number);

            var result = SqlHelper.ExecuteSp("PostTestRole", param, connectionString: ConfigurationManager.ConnectionStrings["Test"].ToString());
            return await Task.FromResult(Ok(result));  //  await Task.FromResult(result);
        }

此API将添加一条记录。

在WebApiConfig.cs

var cacheHandler = new CachingHandler(config);  
 config.MessageHandlers.Add(cacheHandler);

我的问题甚至是在角色集合中插入另一条记录之后。 我的第一个GET API的响应为304 Not Modified,而不是200 OK,其中包含最新的Role数据收集。

那么我该如何实现呢? 预先感谢

0 个答案:

没有答案