博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET Web API实现缓存的2种方式
阅读量:6344 次
发布时间:2019-06-22

本文共 1640 字,大约阅读时间需要 5 分钟。

 

在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缓存,在""中也做了总结。

 

转载地址:http://smkla.baihongyu.com/

你可能感兴趣的文章
网易音乐版轮播-react组件版本
查看>>
ES6 - 函数与剩余运算符
查看>>
你对position了解有多深?看完这2道有意思的题你就有底了...
查看>>
WebSocket跨域问题解决
查看>>
ECMAScript6基本介绍
查看>>
世界经济论坛发布关于区块链网络安全的报告
查看>>
巨杉数据库加入CNCF云原生应用计算基金会,共建开源技术生态
查看>>
Ubuntu 16.04安装Nginx
查看>>
从 JS 编译原理到作用域(链)及闭包
查看>>
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
每周记录(三)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Android推荐常用的31个库
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
深入V8引擎-默认Platform之mac篇(1)
查看>>
linux ssh tunnel使用
查看>>