在ASP.NET Web API中实现缓存大致有2种思路。一种是通过ETag, 一种是通过类似ASP.NET MVC中的OutputCache。

通过ETag实现缓存

首先安装cachecow.server

install-package cachecow.server

在WebApiConfig中。

public static class WebApiConfig
{
public static HttpConfiguraiton Register()
{
var config = new HttpConfiguration(); //支持通过特性设置路由
config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute(
"DefaultRouting",
"api/{controller}/{id}",
defaults:new {id = RouteParamter.Optional}
); //config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(new MediaTYpeHeaderValue("text/html")); config.Formatters.XmlFormatter.SupportedMediaType.Clear(); config.Foramtters.JsonFormatter.SuppoortedMediaTypes.Add(
new MediaTypeHeaderValue("application/json-patch+json");
); config.Formatters.JsonFormatter.SerializerSettings.Formatting = Newtonsoft.Json.Formatting.Indented;
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCaseProeprtyNamesContractResolver(); //HTTP缓存 默认缓存在内存中
config.MessageHandlers.Add(new CacheCow.Server.CachingHandler(config)); return config;
}
}

→ 客户端发出请求

GET http://localhost:43321/api/groups/1

→ 返回200状态码,在响应的Headers中:

ETag:W/"..."
Last-Modified:...

→ 再次请求,通过If-None-Match属性把ETag带上。

GET http://localhost:43321/api/groups/1
Host:localhost:43321
If-None-Match:ETag:W/""

→ 返回304状态码

通过OutputCache实现缓存

在ASP.NET Web API中实现缓存的另外一种思路是通过类似ASP.NET MVC中的OutputCache,具体可参考:Strathweb.CacheOutput.WebApi2

有关ASP.NET Web API缓存,在"ASP.NET Web API中通过ETag实现缓存"中也做了总结。

最新文章

  1. ASP.NET MVC中的两个Action之间值的传递--TempData
  2. 批处理——服务器的web文件备份
  3. oracle游标透彻详解分析
  4. [ActionScript 3.0] AS3.0 Socket通信实例
  5. web开发人员须知的web缓存知识–将数据缓存到浏览器端Net实现
  6. 电脑蓝屏分析教程,附工具WinDbg(x86 x64)6.12.0002.633下载
  7. XBox360自制系统的更新(Update)
  8. Python之xml文档及配置文件处理(ElementTree模块、ConfigParser模块)
  9. SQL Server-聚焦什么时候用OPTION(COMPILE)呢?
  10. WebForm+一般处理程序+Ajax聊天
  11. tmux复制模式
  12. 阿里云 ECS centos java timer进程异常/混乱......的解决方法
  13. java反射知识相关的文章
  14. python 全栈开发,Day8(文件操作)
  15. 【BZOJ2229】【ZJOI2011】最小割
  16. URAL1099. Work Scheduling(一般图匹配带花树开花算法)
  17. 超酷的Prezi在线ppt制作网站
  18. PHP简单工厂模式、工厂方法模式和抽象工厂模式
  19. java获取IP地址
  20. IM

热门文章

  1. Expm 2_1 k-路合并操作问题
  2. 基于MFC的ActiveX控件开发教程------------浏览器插件之ActiveX开发
  3. java多线程快速入门(十五)
  4. PHP常见错误提示含义解释
  5. Fiddler抓包8-打断点(bpu)
  6. VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)
  7. python 全栈开发,Day128(创建二维码,扫码,创建玩具的基本属性)
  8. python 全栈开发,Day45(html介绍和head标签,body标签中相关标签)
  9. 《剑指offer》-铺地砖方案数
  10. maven加载第三方jar不能加载