public static OpenApiDocument GetDocument(OpenApiModuleOptions options, string versionName) { var document = new OpenApiDocument(); document.Components = new OpenApiComponents(); document.Components.Schemas = new Dictionary <string, OpenApiSchema>(); var info = new OpenApiInfo(); info.Version = versionName; info.Title = options.Title; OpenApiContact contact = new OpenApiContact(); contact.Name = options.ContactName; contact.Email = options.ContactEmail; info.Contact = contact; document.Info = info; document.Components.SecuritySchemes = new Dictionary <string, OpenApiSecurityScheme>(); if (options.EnableBearerToken) { OpenApiSecurityScheme openApiSecurityScheme = new OpenApiSecurityScheme(); openApiSecurityScheme.Type = SecuritySchemeType.Http; openApiSecurityScheme.Scheme = "bearer"; openApiSecurityScheme.BearerFormat = "JWT"; document.Components.SecuritySchemes.Add(new KeyValuePair <string, OpenApiSecurityScheme>("bearerAuth", openApiSecurityScheme)); } return(document); }
/// <summary> /// OpenAPI module add the container /// </summary> /// <param name="this"></param> /// <param name="options"></param> /// <returns></returns> public static IHostBuilder AddOpenApiModule(this IHostBuilder @this, OpenApiModuleOptions options) { @this.ContainerBuilder.Register(r => options).As <OpenApiModuleOptions>().SingleInstance(); @this .ContainerBuilder .RegisterType <OpenApiModule>() .SingleInstance(); return(@this); }
public static void AddHeaders(OpenApiOperation operation, OpenApiModuleOptions options) { foreach (var header in options.Headers) { OpenApiParameter openApiHeader = new OpenApiParameter(); openApiHeader.Name = header; openApiHeader.In = ParameterLocation.Header; openApiHeader.Required = false; operation.Parameters.Add(openApiHeader); } }