Add request id to all asp.net core MVC REST API response
In REST API, most of the time we only send request ID when the calls fails with 4XXX
or 5XXX
status codes. But it is a good practice to send the request ID with every response. This can be useful for debugging issues where successful response doesn’t produce the expected result from the backend service.
If you are using asp.net, then we can implement this by using Filters. At first create a ActivityIdHeaderResultFilter.cs
file with the content -
public class ActivityIdHeaderResultFilter
: IResultFilter
{
public void OnResultExecuting(ResultExecutingContext context)
{
context
.HttpContext
.Response
.Headers
.Add("X-ActivityId", Activity.Current?.Id);
}
public void OnResultExecuted(ResultExecutedContext context)
{
}
}
Now Register the filter in your program.cs
or startup.cs
file -
services.AddMvcCore((options) =>
{
// existing code omitted for brevity
options.Filters.Add<ActivityIdHeaderResultFilter>();
});
Now in every request the backend service will response with X-ActivityId
header with the request ID to the caller.
Leave a Comment