SwaggerBoost 1.0.0
dotnet add package SwaggerBoost --version 1.0.0
NuGet\Install-Package SwaggerBoost -Version 1.0.0
<PackageReference Include="SwaggerBoost" Version="1.0.0" />
<PackageVersion Include="SwaggerBoost" Version="1.0.0" />
<PackageReference Include="SwaggerBoost" />
paket add SwaggerBoost --version 1.0.0
#r "nuget: SwaggerBoost, 1.0.0"
#:package SwaggerBoost@1.0.0
#addin nuget:?package=SwaggerBoost&version=1.0.0
#tool nuget:?package=SwaggerBoost&version=1.0.0
Swagger Boost
This package provides an easy way to add versioning to Swagger using ASP.NET with few modifications.
Usage
Add a reference to this project.
In your API appsettings.json, add the following section and set the values you desire:
"SwaggerConfig": {
"Title": "My API",
"Version": "1",
"Description": "The most awesome API that does everything!",
"ObsoleteDescription": " Obsolete version.",
"Contact": {
"Name": "My name",
"Email": "myemail@domain.com",
"Url": "https://mywebsite.com"
},
"License": {
"Name": "MIT License",
"Url": "www.mylicense.com"
},
"UseJwtAuthentication": false
},
If you desire to implement Jwt bearer authentication in Swagger, set
"UseJwtAuthentication": true
then it will generate the login box for you (you still need to implement the authentication in your API).
In your Program.cs, add a reference to:
using SwaggerBoost.Configuration;
using Swashbuckle.AspNetCore.SwaggerGen;
Then add the configuration of Swagger:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddControllers();
//...
builder.Services.AddSwaggerConfig(builder.Configuration);
builder.Services.AddTransient<IConfigureOptions<SwaggerGenOptions>, ConfigureSwaggerOptions>();
//...
var app = builder.Build();
//... middlewares
//...
var apiVersionDescriptionProvider = app.Services.GetRequiredService<IApiVersionDescriptionProvider>();
app.UseSwaggerConfig(apiVersionDescriptionProvider);
//...
app.Run();
In your controllers, add the version annotations as you desire. For example, HelloController has two versions:
using Asp.Versioning;
using Microsoft.AspNetCore.Mvc;
namespace Api.Controllers.V1;
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiController]
public class HelloController : ControllerBase
{
[HttpGet("hello")]
public string Hello() => "Hello world!";
}
And version 2:
using Asp.Versioning;
using Microsoft.AspNetCore.Mvc;
namespace Api.Controllers.V2;
[ApiVersion("2.0")]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiController]
public class HelloController : ControllerBase
{
[HttpGet("hello")]
public string Hello() => "Hello world 2!";
}
That's all you need to do.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Asp.Versioning.Mvc (>= 8.1.0)
- Asp.Versioning.Mvc.ApiExplorer (>= 8.1.0)
- Swashbuckle.AspNetCore.SwaggerGen (>= 6.6.2)
- Swashbuckle.AspNetCore.SwaggerUI (>= 6.6.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0 | 131 | 7/10/2024 |
Add versioning to API.