使用ActionFilter,在每个操作前后添加逻辑以附加额外数据。
首先,创建一个类来实现ActionFilter接口并重写OnActionExecuted方法。在该方法中,将需要附加的数据添加到HttpResponse中。
using Microsoft.AspNetCore.Mvc.Filters;
public class CustomActionFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext context)
{
base.OnActionExecuted(context);
// Add extra data to response headers
context.HttpContext.Response.Headers.Add("custom-header", "extra-data");
}
}
然后,在需要附加额外数据的操作上添加CustomActionFilter标记。
[HttpGet]
[CustomActionFilter]
public IActionResult Get()
{
var data = GetData();
return Ok(data);
}
最后,当调用Get操作时,将包括名为“custom-header”的头部,其中包含“extra-data”的值。
HTTP/1.1 200 OK
custom-header: extra-data
{
"result": "data"
}