Skip to content

Instantly share code, notes, and snippets.

@rasor
Forked from robzhu/Startup.cs
Created January 7, 2018 14:53
Show Gist options
  • Save rasor/8e547ed9ae54428868a3928b95b96429 to your computer and use it in GitHub Desktop.
Save rasor/8e547ed9ae54428868a3928b95b96429 to your computer and use it in GitHub Desktop.
OWIN Startup configuration for JSON serialization
using System.Collections.Generic;
using System.Web.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Owin;
using Swashbuckle.Application;
namespace Project
{
public class Startup
{
public void Configuration( IAppBuilder app )
{
var config = new HttpConfiguration();
var defaultSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
Converters = new List<JsonConverter>
{
new StringEnumConverter{ CamelCaseText = true },
}
};
JsonConvert.DefaultSettings = () => { return defaultSettings; };
config.Formatters.Clear();
config.Formatters.Add( new JsonMediaTypeFormatter() );
config.Formatters.JsonFormatter.SerializerSettings = defaultSettings;
config.Routes.MapHttpRoute( "api", "{controller}/{id}", defaults: new { controller = "Root", id = RouteParameter.Optional } );
config.MapHttpAttributeRoutes();
config.EnableSwagger( c =>
{
c.IncludeXmlComments( "docs.xml" );
c.SingleApiVersion( "1.0", "Http Request Debugger" );
} ).EnableSwaggerUi();
app.UseWebApi( config );
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment