public static IMMServiceBuilder AddSwaggerIntegration(this IMMServiceBuilder builder, Action <MMSwashbuckleConfigurationBuilder>?setupAction = null)
        {
            var config = new MMSwashbuckleConfiguration(builder.ServiceInfo.ServiceName, builder.ServiceInfo.ServiceVersion);
            var configurationBuilder = new MMSwashbuckleConfigurationBuilder(config);

            setupAction?.Invoke(configurationBuilder);
            SetupSwaggerIntegration(builder, configurationBuilder.Build());
            return(builder);
        }
コード例 #2
0
 public static IMMServiceBuilder AddAspNetCoreIntegration(this IMMServiceBuilder builder) =>
 builder.AddMMServiceSetupAction(() => builder.Services
                                 .TryAddSingleton <IMMAspNetCoreConfiguration>(sp =>
                                                                               new MMAspNetCoreConfiguration(
                                                                                   builder.ServiceInfo.ServiceName,
                                                                                   builder.ServiceInfo.ServiceVersion,
                                                                                   sp.GetRequiredService <IHostEnvironment>().IsDevelopment()
                                                                                   )
                                                                               )
                                 );
        private static void SetupSwaggerIntegration(IMMServiceBuilder builder, IMMSwashbuckleConfiguration config)
        {
            builder.AddMMServiceSetupAction(() =>
            {
                builder.Services.TryAddSingleton(config);
                builder.Services.AddSwaggerGen(c =>
                {
                    c.SwaggerDoc(config.MajorServiceVersionForUrl(), config.OpenApiInfo);
                    c.DocumentFilter <SwaggerSortByComplexityFilter>();

                    config.SwaggerGenSetupAction(c);
                });
            });
        }