public void ConfigureSwagger(SwaggerDocumentSettings settings) { settings.OperationProcessors.Add(new OperationSecurityScopeProcessor("JWT")); settings.DocumentProcessors.Add(new SecurityDefinitionAppender("JWT", Enumerable.Empty <string>(), new SwaggerSecurityScheme { Type = SwaggerSecuritySchemeType.ApiKey, Name = "Authorization", Description = "Bearer token", In = SwaggerSecurityApiKeyLocation.Header })); }
private void ConfigureSwaggerDocumentSettings( SwaggerDocumentSettings document) { document.Title = "PowerDingsbums"; document.Description = "PowerDingsbums"; document.Version = "1.0"; //document.DefaultPropertyNameHandling = NJsonSchema.PropertyNameHandling.CamelCase; // Add custom document processors, etc. //https://docs.microsoft.com/en-us/connectors/custom-connectors/create-web-api-connector // test this by creating a Connector document.DocumentProcessors.Add( new SecurityDefinitionAppender( "AAD", new string[] { "Dingsbums" }, new SwaggerSecurityScheme { Type = SwaggerSecuritySchemeType.OAuth2, Flow = SwaggerOAuth2Flow.AccessCode, Name = "AAD", AuthorizationUrl = "https://login.windows.net/common/oauth2/authorize", TokenUrl = "https://login.windows.net/common/oauth2/token", Description = "AAD" })); // Post process the generated document //document.PostProcess = d => d.Info.Title = "Hello world!"; }
/// <summary>Adds a document to the registry.</summary> /// <param name="registry">The registry.</param> /// <param name="configure">The configure action.</param> /// <returns>The registry.</returns> public static ISwaggerDocumentBuilder AddSwaggerDocument(this ISwaggerDocumentBuilder registry, Action <SwaggerDocumentSettings> configure = null) { var settings = new SwaggerDocumentSettings(); settings.SchemaType = SchemaType.Swagger2; configure?.Invoke(settings); var generator = new AspNetCoreToSwaggerGenerator(settings, settings.SchemaGenerator ?? new SwaggerJsonSchemaGenerator(settings)); return(((SwaggerDocumentRegistry)registry).AddDocument(settings.DocumentName, generator)); }
/// <summary>Adds services required for Swagger 2.0 generation (change document settings to generate OpenAPI 3.0).</summary> /// <param name="serviceCollection">The <see cref="IServiceCollection"/>.</param> /// <param name="configure">Configure the document.</param> public static IServiceCollection AddSwaggerDocument(this IServiceCollection serviceCollection, Action <SwaggerDocumentSettings, IServiceProvider> configure = null) { serviceCollection.AddSingleton(services => { var settings = new SwaggerDocumentSettings(); settings.SchemaType = SchemaType.Swagger2; configure?.Invoke(settings, services); if (settings.PostProcess != null) { var processor = new ActionDocumentProcessor(context => settings.PostProcess(context.Document)); settings.DocumentProcessors.Add(processor); } foreach (var documentProcessor in services.GetRequiredService <IEnumerable <IDocumentProcessor> >()) { settings.DocumentProcessors.Add(documentProcessor); } foreach (var operationProcessor in services.GetRequiredService <IEnumerable <IOperationProcessor> >()) { settings.OperationProcessors.Add(operationProcessor); } var schemaGenerator = settings.SchemaGenerator ?? new SwaggerJsonSchemaGenerator(settings); var generator = new AspNetCoreToSwaggerGenerator(settings, schemaGenerator); return(new SwaggerDocumentRegistration(settings.DocumentName, generator)); }); var descriptor = serviceCollection.SingleOrDefault(d => d.ServiceType == typeof(SwaggerDocumentProvider)); if (descriptor == null) { serviceCollection.AddSingleton <SwaggerDocumentProvider>(); serviceCollection.AddSingleton <IConfigureOptions <MvcOptions>, SwaggerConfigureMvcOptions>(); // Used by UseDocumentProvider CLI setting serviceCollection.AddSingleton <ISwaggerDocumentProvider>(s => s.GetRequiredService <SwaggerDocumentProvider>()); // Used by the Microsoft.Extensions.ApiDescription tool serviceCollection.AddSingleton <ApiDescription.IDocumentProvider>(s => s.GetRequiredService <SwaggerDocumentProvider>()); } return(serviceCollection); }