首页 > IT职业 > IT职场 > [Asp.net web api]缓存
为了提高接口的性能,我们常做的优化就包括缓存,对经常访问但变化不大的数据进行缓存。或者使用http的缓存,减少请求的次数。
在提供的api,我们也可以实现缓存,来减少访问的次数。有个比较好的组件,供我们使用。
通过Nuget安装WebApi.OutputCache.V2开源组件,项目地址:https://github.com/filipw/Strathweb.CacheOutput

使用

[RoutePrefix("api/user")] public class UserController : ApiController
{ private List _lstUsers; public UserController()
{
_lstUsers = new List()
{ new User{ Id=1, Name="wolfy1"}, new User{ Id=2, Name="wolfy2"}, new User{ Id=3, Name="wolfy3"}, new User{ Id=4, Name="wolfy4"}, new User{ Id=5, Name="wolfy5"},
};
} ///
/// 缓存120s ///
/// [HttpGet]
[Route("all")]
[CacheOutput(ClientTimeSpan = 120, ServerTimeSpan = 120)] public HttpResponseMessage GetAll()
{
HttpResponseMessage response = Request.CreateResponse();
response.StatusCode = HttpStatusCode.OK;
response.Content = new StringContent(JsonConvert.SerializeObject(new { _code = 200, _data = _lstUsers }),
System.Text.Encoding.UTF8); return response;
}
}
第一次访问

第二次刷新

在Debug模式下,第二次没有进入端点,没有发起请求。
在优化查询接口的时候,如果数据不是非常频繁的变化,可以使用该组件进行缓存方面的优化。关于该组件其他参数,可以参考它项目地址中提供的文档。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3071/viewspace-2800841/ ,如需转载,请注明出处,否则将追究法律责任。