Esempio n. 1
0
        /// <summary>Addes the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
        /// <param name="app">The app.</param>
        /// <param name="controllerTypes">The Web API controller types.</param>
        /// <param name="configure">Configure the Swagger settings.</param>
        /// <param name="schemaGenerator">The schema generator.</param>
        /// <returns>The app builder.</returns>
        public static IAppBuilder UseSwaggerUi3(
            this IAppBuilder app,
            IEnumerable <Type> controllerTypes,
            Action <SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings> > configure = null,
            SwaggerJsonSchemaGenerator schemaGenerator = null)
        {
            var settings = new SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings>();

            configure?.Invoke(settings);

            if (controllerTypes != null)
            {
                app.Use <SwaggerMiddleware>(settings.ActualSwaggerRoute, controllerTypes, settings, schemaGenerator ?? new SwaggerJsonSchemaGenerator(settings.GeneratorSettings));
            }

            app.Use <RedirectMiddleware>(settings.ActualSwaggerUiRoute, settings.ActualSwaggerRoute);
            app.Use <SwaggerUiIndexMiddleware <WebApiToSwaggerGeneratorSettings> >(settings.ActualSwaggerUiRoute + "/index.html", settings, "NSwag.AspNet.Owin.SwaggerUi3.index.html");
            app.UseFileServer(new FileServerOptions
            {
                RequestPath = new PathString(settings.ActualSwaggerUiRoute),
                FileSystem  = new EmbeddedResourceFileSystem(typeof(SwaggerExtensions).Assembly, "NSwag.AspNet.Owin.SwaggerUi3")
            });
            app.UseStageMarker(PipelineStage.MapHandler);
            return(app);
        }
Esempio n. 2
0
 /// <summary>Addes the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
 /// <param name="app">The app.</param>
 /// <param name="webApiAssembly">The Web API assembly to search for controller types.</param>
 /// <param name="settings">The Swagger UI and generator settings.</param>
 /// <returns>The app builder.</returns>
 public static IAppBuilder UseSwaggerUi3(
     this IAppBuilder app,
     Assembly webApiAssembly,
     SwaggerUi3Settings settings)
 {
     return app.UseSwaggerUi3(new[] { webApiAssembly }, settings);
 }
Esempio n. 3
0
        private static SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings> ConfigureSwagger()
        {
            var swaggerSettings = new SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings>();

            swaggerSettings.EnableTryItOut = false;
            swaggerSettings.ServerUrl      = "http://lol.com";
            return(swaggerSettings);
        }
Esempio n. 4
0
 /// <summary>Addes the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
 /// <param name="app">The app.</param>
 /// <param name="webApiAssemblies">The Web API assemblies to search for controller types.</param>
 /// <param name="settings">The Swagger UI and generator settings.</param>
 /// <returns>The app builder.</returns>
 public static IAppBuilder UseSwaggerUi3(
     this IAppBuilder app,
     IEnumerable<Assembly> webApiAssemblies,
     SwaggerUi3Settings settings)
 {
     var controllerTypes = webApiAssemblies.SelectMany(WebApiToSwaggerGenerator.GetControllerClasses);
     return app.UseSwaggerUi3(controllerTypes, settings, new SwaggerJsonSchemaGenerator(settings));
 }
Esempio n. 5
0
 /// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
 /// <param name="app">The app.</param>
 /// <param name="controllerTypes">The Web API controller types.</param>
 /// <param name="configure">Configure the Swagger generator and UI settings.</param>
 public static IAppBuilder UseSwaggerUi3(
     this IAppBuilder app,
     IEnumerable<Type> controllerTypes,
     Action<SwaggerUi3Settings> configure = null)
 {
     var settings = new SwaggerUi3Settings();
     configure?.Invoke(settings);
     return app.UseSwaggerUi3(controllerTypes, settings, new SwaggerJsonSchemaGenerator(settings));
 }
 public static void AddFlexAuthentication(this SwaggerUi3Settings settings, IServiceIdentity serviceIdentity)
 {
     settings.OAuth2Client = new OAuth2ClientSettings
     {
         AppName      = serviceIdentity.ClientId,
         ClientId     = serviceIdentity.ClientId,
         ClientSecret = string.Empty,
         UsePkceWithAuthorizationCodeGrant = true
     };
 }
Esempio n. 7
0
        /// <summary>Addes the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
        /// <param name="app">The app.</param>
        /// <param name="controllerTypes">The Web API controller types.</param>
        /// <param name="settings">The Swagger UI and generator settings.</param>
        /// <param name="schemaGenerator">The schema generator.</param>
        /// <returns>The app builder.</returns>
        public static IAppBuilder UseSwaggerUi3(
            this IAppBuilder app,
            IEnumerable<Type> controllerTypes,
            SwaggerUi3Settings settings,
            SwaggerJsonSchemaGenerator schemaGenerator)
        {
            if (controllerTypes != null)
                app.Use<SwaggerMiddleware>(settings.ActualSwaggerRoute, controllerTypes, settings, schemaGenerator);

            app.Use<RedirectMiddleware>(settings.ActualSwaggerUiRoute, settings.ActualSwaggerRoute);
            app.Use<SwaggerUiIndexMiddleware>(settings.ActualSwaggerUiRoute + "/index.html", settings, "NSwag.AspNet.Owin.SwaggerUi3.index.html");
            app.UseFileServer(new FileServerOptions
            {
                RequestPath = new PathString(settings.ActualSwaggerUiRoute),
                FileSystem = new EmbeddedResourceFileSystem(typeof(SwaggerExtensions).Assembly, "NSwag.AspNet.Owin.SwaggerUi3")
            });
            app.UseStageMarker(PipelineStage.MapHandler);
            return app;
        }
        /// <summary>Adds the Swagger UI (only) to the pipeline.</summary>
        /// <remarks>The settings.GeneratorSettings property does not have any effect.</remarks>
        /// <param name="app">The app.</param>
        /// <param name="configure">Configure the Swagger settings.</param>
        /// <returns>The app builder.</returns>
        public static IApplicationBuilder UseSwaggerUi3(
            this IApplicationBuilder app,
            Action <SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings> > configure = null)
        {
            // TODO(v12): Add IOptions support when SwaggerUi3Settings<> T has been removed
            //var settings = configure == null && app.ApplicationServices.GetService<IOptions<SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>>>()?.Value ??
            //    new SwaggerUi3Settings<WebApiToSwaggerGeneratorSettings>();

            var settings = new SwaggerUi3Settings <WebApiToSwaggerGeneratorSettings>();

            configure?.Invoke(settings);

            UseSwaggerUiWithDocumentNamePlaceholderExpanding(app, settings, (swaggerRoute, swaggerUiRoute) =>
            {
                app.UseMiddleware <RedirectToIndexMiddleware>(swaggerUiRoute, swaggerRoute, settings.TransformToExternalPath);
                app.UseMiddleware <SwaggerUiIndexMiddleware <WebApiToSwaggerGeneratorSettings> >(swaggerUiRoute + "/index.html", settings, "NSwag.AspNetCore.SwaggerUi3.index.html");
                app.UseFileServer(new FileServerOptions
                {
                    RequestPath  = new PathString(swaggerUiRoute),
                    FileProvider = new EmbeddedFileProvider(typeof(SwaggerExtensions).GetTypeInfo().Assembly, "NSwag.AspNetCore.SwaggerUi3")
                });
            },
                                                             (documents) =>
            {
                var swaggerRouteWithPlaceholder = settings.ActualSwaggerDocumentPath;

                settings.SwaggerRoutes.Clear();
                foreach (var document in documents)
                {
                    var swaggerRoute = swaggerRouteWithPlaceholder.Replace("{documentName}", document.DocumentName);
                    settings.SwaggerRoutes.Add(new SwaggerUi3Route(document.DocumentName, swaggerRoute));
                }

                return(true);
            });

            return(app);
        }
Esempio n. 9
0
        /// <summary>Addes the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
        /// <param name="app">The app.</param>
        /// <param name="controllerTypes">The Web API controller types.</param>
        /// <param name="configure">Configure the Swagger settings.</param>
        /// <returns>The app builder.</returns>
        public static IAppBuilder UseSwaggerUi3(
            this IAppBuilder app,
            IEnumerable <Type> controllerTypes,
            Action <SwaggerUi3Settings <WebApiOpenApiDocumentGeneratorSettings> > configure = null)
        {
            var settings = new SwaggerUi3Settings <WebApiOpenApiDocumentGeneratorSettings>();

            configure?.Invoke(settings);

            if (controllerTypes != null)
            {
                app.Use <OpenApiDocumentMiddleware>(settings.ActualSwaggerDocumentPath, controllerTypes, settings);
            }

            app.Use <RedirectToIndexMiddleware>(settings.ActualSwaggerUiPath, settings.ActualSwaggerDocumentPath, settings.TransformToExternalPath);
            app.Use <SwaggerUiIndexMiddleware <WebApiOpenApiDocumentGeneratorSettings> >(settings.ActualSwaggerUiPath + "/index.html", settings, "NSwag.AspNet.Owin.SwaggerUi3.index.html");
            app.UseFileServer(new FileServerOptions
            {
                RequestPath = new PathString(settings.ActualSwaggerUiPath),
                FileSystem  = new EmbeddedResourceFileSystem(typeof(SwaggerExtensions).Assembly, "NSwag.AspNet.Owin.SwaggerUi3")
            });
            app.UseStageMarker(PipelineStage.MapHandler);
            return(app);
        }
Esempio n. 10
0
 protected virtual void SwaggerUi3Setting(SwaggerUi3Settings options)
 {
     options.WithCredentials = true;
 }
 /// <summary>Configure SwaggerUi3.</summary>
 /// <param name="settings"><see cref="SwaggerUi3Settings"/></param>
 protected virtual void ConfigureSwaggerUi3(SwaggerUi3Settings settings)
 {
     settings.Path = "/swagger";
     settings.DefaultModelsExpandDepth = -1;
     settings.EnableTryItOut           = true;
 }
Esempio n. 12
0
 /// <summary>Addes the Swagger UI (only) to the OWIN pipeline.</summary>
 /// <param name="app">The app.</param>
 /// <param name="settings">The Swagger UI settings.</param>
 /// <returns>The app builder.</returns>
 public static IAppBuilder UseSwaggerUi3(
     this IAppBuilder app,
     SwaggerUi3Settings settings)
 {
     return app.UseSwaggerUi3(null, settings, null);
 }