diff --git a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs index 0a83c12895..cf0ded5eb5 100644 --- a/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs +++ b/src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs @@ -5,11 +5,12 @@ namespace JsonApiDotNetCore.Routing { public static class IApplicationBuilderExtensions { - public static IApplicationBuilder UseJsonApi(this IApplicationBuilder app) + public static IApplicationBuilder UseJsonApi(this IApplicationBuilder app, bool useMvc = true) { app.UseMiddleware(); - app.UseMvc(); + if (useMvc) + app.UseMvc(); return app; } diff --git a/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs b/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs index 1e646c085d..22653f0e8f 100644 --- a/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs +++ b/src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs @@ -18,22 +18,38 @@ public static class IServiceCollectionExtensions public static void AddJsonApi(this IServiceCollection services) where TContext : DbContext { - _addInternals(services, new JsonApiOptions()); + var mvcBuilder = services.AddMvc(); + AddInternals(services, new JsonApiOptions(), mvcBuilder); } public static void AddJsonApi(this IServiceCollection services, Action options) where TContext : DbContext { var config = new JsonApiOptions(); + options(config); - _addInternals(services, config); + + var mvcBuilder = services.AddMvc(); + AddInternals(services, config, mvcBuilder); } - private static void _addInternals(IServiceCollection services, JsonApiOptions jsonApiOptions) - where TContext : DbContext + public static void AddJsonApi(this IServiceCollection services, + Action options, + IMvcBuilder mvcBuilder) where TContext : DbContext + { + var config = new JsonApiOptions(); + + options(config); + + AddInternals(services, config, mvcBuilder); + } + + private static void AddInternals(IServiceCollection services, + JsonApiOptions jsonApiOptions, + IMvcBuilder mvcBuilder) where TContext : DbContext { services.AddJsonApiInternals(jsonApiOptions); - services.AddMvc() + mvcBuilder .AddMvcOptions(opt => { opt.Filters.Add(typeof(JsonApiExceptionFilter)); opt.SerializeAsJsonApi(jsonApiOptions); diff --git a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj index de2426ec77..8872a457b0 100755 --- a/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj +++ b/src/JsonApiDotNetCore/JsonApiDotNetCore.csproj @@ -1,7 +1,7 @@  - 1.2.1 + 1.2.2 netcoreapp1.0 JsonApiDotNetCore JsonApiDotNetCore