Skip to content

Instantly share code, notes, and snippets.

@sunnamed434
Created August 26, 2023 11:13
Show Gist options
  • Save sunnamed434/8120a38039f556f2bad9a4f734f5e058 to your computer and use it in GitHub Desktop.
Save sunnamed434/8120a38039f556f2bad9a4f734f5e058 to your computer and use it in GitHub Desktop.
ASP.NET ProblemDetails application/problem+json
services.AddControllers(configure =>
{
configure.Filters.Add<ProblemResultFilter>();
});
[UsedImplicitly]
public class ProblemResultFilter : IResultFilter
{
[SuppressMessage("ReSharper", "MergeIntoPattern")]
public void OnResultExecuting(ResultExecutingContext context)
{
if (context.Result is ObjectResult objectResult
&& objectResult.StatusCode == StatusCodes.Status400BadRequest)
{
objectResult.ContentTypes.Add(KnownMediaTypes.Problem);
}
}
public void OnResultExecuted(ResultExecutedContext context)
{
}
}
public static class KnownMediaTypes
{
public const string Problem = "application/problem+json";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment