< Summary

Information
Class: WebApiVersioning.Program
Assembly: WebApiVersioning
File(s): /home/runner/work/api-versioining-dot-net/api-versioining-dot-net/WebApiVersioning/Program.cs
Line coverage
100%
Covered lines: 38
Uncovered lines: 0
Coverable lines: 38
Total lines: 61
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Main(...)100%44100%

File(s)

/home/runner/work/api-versioining-dot-net/api-versioining-dot-net/WebApiVersioning/Program.cs

#LineLine coverage
 1using Asp.Versioning;
 2using Asp.Versioning.ApiExplorer;
 3
 4namespace WebApiVersioning;
 5
 6public class Program
 7{
 8    private static void Main(string[] args)
 19    {
 110        var builder = WebApplication.CreateBuilder(args);
 11
 12        // Add services to the container.
 13
 114        builder.Services.AddControllers();
 15        // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
 116        builder.Services.AddEndpointsApiExplorer();
 117        builder.Services.AddSwaggerGen();
 118        builder.Services.AddEndpointsApiExplorer();
 19
 120        builder.Services.AddApiVersioning(opt =>
 121        {
 122            opt.DefaultApiVersion = new ApiVersion(1, 0);
 123            opt.AssumeDefaultVersionWhenUnspecified = true;
 124            opt.ReportApiVersions = true;
 125            opt.ApiVersionReader = ApiVersionReader.Combine(new UrlSegmentApiVersionReader(),
 126                new HeaderApiVersionReader("x-api-version"),
 127                new MediaTypeApiVersionReader("x-api-version"));
 128        }).AddApiExplorer(options =>
 129        {
 130            options.GroupNameFormat = "'v'VVV";
 131            options.SubstituteApiVersionInUrl = true;
 232        });
 33
 134        builder.Services.ConfigureOptions<ConfigureSwaggerOptions>();
 135        builder.Services.AddApiVersioning();
 36
 137        var app = builder.Build();
 38
 39        // Configure the HTTP request pipeline.
 140        if (app.Environment.IsDevelopment())
 141        {
 142            var apiVersionDescriptionProvider = app.Services.GetRequiredService<IApiVersionDescriptionProvider>();
 43
 144            app.UseSwagger();
 145            app.UseSwaggerUI(options =>
 146            {
 747                foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions)
 248                    options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json",
 249                        description.GroupName.ToUpperInvariant());
 250            });
 151        }
 52
 153        app.UseHttpsRedirection();
 54
 155        app.UseAuthorization();
 56
 157        app.MapControllers();
 58
 159        app.Run();
 160    }
 61}

Methods/Properties

Main(System.String[])