我正在尝试使用“Microsoft.AspNetCore.ResponseCaching”包在我的web api中实现响应缓存.
我正在使用Postman测试应用程序并验证标题等.
使用指定的max-age生成正确的标头但邮递员似乎从api请求响应而不使用缓存.响应时间根本没有变化,如果我调试控制器,我可以看到它每次都被请求命中.
启动类ConfigureServices(以及其他东西):
services.AddResponseCaching();
启动类配置(以及其他内容):
app.UseResponseCaching(); app.UseMvc();
控制器动作:
[HttpGet("{employeeNr}",Name = EmployeeAction)] [ResponseCache(Duration = 50)] [Produces(typeof(EmployeeDto))] public async Task<IActionResult> GetEmployee(SpecificEmployeeParameters parameters) { if (!await _employeeRepository.EmployeeExists(parameters.EmployeeNr)) return NotFound(); if (!_typeHelperService.TypeHasProperties<EmployeeDto>(parameters.Fields)) return BadRequest(); var entity = await _employeeRepository.GetEmployee(parameters.EmployeeNr); var result = Mapper.Map<EmployeeDto>(entity); return Ok(result.ShapeData(parameters.Fields)); }
cache-control →private,max-age=50 content-type →application/json; charset=utf-8 date →Wed,30 Aug 2017 11:53:06 GMT