/// <summary> /// Visits <see cref="OpenApiContact"/> /// </summary> public virtual void Visit(OpenApiContact contact) { }
public static IServiceCollection AddSwaggerGeneration(this IServiceCollection services, OpenApiContact apiContact, string swaggerTitle, Type callerType) { return(services.AddSwaggerGen(options => { // Resolve the temporary IApiVersionDescriptionProvider service var provider = services.BuildServiceProvider().GetRequiredService <IApiVersionDescriptionProvider>(); // Add a swagger document for each discovered API version foreach (var description in provider.ApiVersionDescriptions) { options.SwaggerDoc(description.GroupName, new OpenApiInfo { Title = swaggerTitle + $" {description.ApiVersion}", Version = description.ApiVersion.ToString(), Contact = apiContact }); } // Add a custom filter for setting the default values options.OperationFilter <SwaggerDefaultValues>(); // Tells swagger to pick up the output XML document file options.IncludeXmlComments(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), $"{callerType.Assembly.GetName().Name}.xml")); })); }
public static IServiceCollection AddSwaggerConfiguration(this IServiceCollection services) { var contact = new OpenApiContact() { Name = "Ever Orellana", Email = "*****@*****.**", Url = new Uri("https://github.com/ever1509") }; var license = new OpenApiLicense() { Name = "Expenses Manager App", Url = new Uri("https://www.expensesmgr.com") }; var info = new OpenApiInfo() { Version = "v1", Title = "Expenses Manager API", Description = "API which has functionality to manage expenses", TermsOfService = new Uri("https://www.expensesmgr.com/terms/"), Contact = contact, License = license }; services.AddSwaggerGen(c => { c.SwaggerDoc("ExpensesMgrAPI", info); c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); //Adding configuration of jwt for swagger UI ---------------------------------- c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { Description = @"JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token in the text input below. Example: 'Bearer 12345abcdef'", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.ApiKey, Scheme = "Bearer" }); c.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new List <string>() } }); //---------------------------------------- }); return(services); }
/// <summary> /// Adds Swagger services and configures the Swagger services. /// </summary> /// <param name="services">The services collection or IoC container.</param> /// <param name="configuration">Gets or sets the application configuration, where key value pair settings are stored.</param> public static IServiceCollection AddSwagger(this IServiceCollection services, IConfiguration configuration) { var webApiEnviroment = configuration.GetSection(WebApiValues.WebApiEnvirormentConfiguration).Get <EnvirormentSettings>(); services.AddSwaggerGen( options => { //var assembly = typeof(Startup).GetTypeInfo().Assembly; //var strTitle = assembly.GetCustomAttribute<AssemblyProductAttribute>().Product; //var strDescription = assembly.GetCustomAttribute<AssemblyDescriptionAttribute>().Description; var strAppContact = new OpenApiContact() { Email = webApiEnviroment.WebApiContactMail, Name = webApiEnviroment.WebApiContactName, Url = new System.Uri(webApiEnviroment.WebApiContactUrl) }; var strAppLicence = new OpenApiLicense() { Name = webApiEnviroment.WebApiLicenseName, Url = new System.Uri(webApiEnviroment.WebApiLicenseUrl) }; options.EnableAnnotations(); //// Add the XML comment file for this assembly, so it's contents can be displayed. if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { // Use windows path with \\ options.IncludeXmlComments(webApiEnviroment.SwaggerXmlComments); } else { // Use linux path with \ options.IncludeXmlComments(webApiEnviroment.SwaggerXmlComments.Replace(@"\", @"/")); } //// Show an example model for JsonPatchDocument<T>. //options.SchemaFilter<JsonPatchDocumentSchemaFilter>(); //// Show an example model for ModelStateDictionary. //options.SchemaFilter<ModelStateDictionarySchemaFilter>(); options.SwaggerDoc( "v1", new OpenApiInfo() { Version = webApiEnviroment.WebApiVersion, Title = webApiEnviroment.WebApiTitle, Description = webApiEnviroment.WebApiDescription, Contact = strAppContact, License = strAppLicence, TermsOfService = new System.Uri(webApiEnviroment.WebApiLicenseUrl) // webApiEnviroment.WebApiTermOfService, }); options.CustomSchemaIds(x => x.FullName); }); return(services); }