46 lines
1.9 KiB
C#
46 lines
1.9 KiB
C#
using System.Web.Http;
|
|
using Kreta.Core.JsonConverter;
|
|
using Kreta.Core.ModelBinder;
|
|
using Kreta.Ellenorzo.Web.FilterAttributes;
|
|
using Kreta.Ellenorzo.WebApi.FilterAttributes;
|
|
using Kreta.Web.Logging.Interceptors;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
|
|
namespace Kreta.Ellenorzo.WebApi
|
|
{
|
|
/// <summary>
|
|
/// Web Api configuration class
|
|
/// </summary>
|
|
public static class WebApiConfig
|
|
{
|
|
/// <summary>
|
|
/// Web Api configuration entry
|
|
/// </summary>
|
|
/// <param name="config">HttpConfiguration for configuring web Api</param>
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0")]
|
|
public static void Register(HttpConfiguration config)
|
|
{
|
|
System.Net.Http.Formatting.JsonMediaTypeFormatter formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
|
|
|
|
formatter.SerializerSettings = new JsonSerializerSettings
|
|
{
|
|
Formatting = Formatting.Indented,
|
|
TypeNameHandling = TypeNameHandling.None
|
|
};
|
|
|
|
formatter.SerializerSettings.Converters.Add(new StringTrimConverter());
|
|
formatter.SerializerSettings.Converters.Add(new StringEnumConverter());
|
|
|
|
#pragma warning disable S3900 // Arguments of public methods should be validated against null
|
|
config.Filters.Add(new DefaultExceptionFilterAttribute());
|
|
#pragma warning restore S3900 // Arguments of public methods should be validated against null
|
|
config.Filters.Add(new ApiKeyAuthorizationAttribute());
|
|
config.Filters.Add(new IdpAuthorizeAttribute());
|
|
config.MapHttpAttributeRoutes();
|
|
config.MessageHandlers.Add(new ApiLoggingHandler());
|
|
|
|
config.BindParameter(typeof(string), new StringTrimModelBinder());
|
|
}
|
|
}
|
|
}
|