Swashbuckle.AspNetCore.EsquioResolver
1.0.0
dotnet add package Swashbuckle.AspNetCore.EsquioResolver --version 1.0.0
NuGet\Install-Package Swashbuckle.AspNetCore.EsquioResolver -Version 1.0.0
<PackageReference Include="Swashbuckle.AspNetCore.EsquioResolver" Version="1.0.0" />
paket add Swashbuckle.AspNetCore.EsquioResolver --version 1.0.0
#r "nuget: Swashbuckle.AspNetCore.EsquioResolver, 1.0.0"
// Install Swashbuckle.AspNetCore.EsquioResolver as a Cake Addin
#addin nuget:?package=Swashbuckle.AspNetCore.EsquioResolver&version=1.0.0
// Install Swashbuckle.AspNetCore.EsquioResolver as a Cake Tool
#tool nuget:?package=Swashbuckle.AspNetCore.EsquioResolver&version=1.0.0
Swashbuckle.AspNetCore.EsquioResolver
Conflict solver in actions with features toggles using Esquio.
When using feature toggles you will probably want to use the same endpoint / resource / verb depending on whether a feature toggles is enabled.
[HttpGet]
[ActionName("Get")]
public IEnumerable<Pokemon> Get()
{
return pokemonReader.Read(configuration.GetValue<string>("PokedexPath"));
}
[FeatureFilter(Name = Flags.PokedexSuper)]
[HttpGet]
[ActionName("Get")]
public IEnumerable<PokemonSuper> GetNew()
{
return pokemonSuperReader.Read(configuration.GetValue<string>("PokedexSuperPath"));
}
The Swashbuckle documentation does not allow two endpoints / resource / verb to be called the same, because this solution is not supported by OpenApi 3.0.
The solution is to create a conflict solver.
Requirements
- .Net Core 3.1.302
- Nuget: Esquio
- Nuget: Swashbuckle
Installation
With package manager:
Install-Package Swashbuckle.AspNetCore.EsquioResolver
.Net CLI
dotnet add Swashbuckle.AspNetCore.EsquioResolver
How to use
Add these commands in your project's startup.cs ConfigureServices method:
services.AddSwaggerGen(configuration =>
{
configuration.ResolveConflictingActionsByFeatureToggles();
});
And in your Configure method:
app.UseResolveConflictingActionsByFeatureToggles();
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp3.1 |
-
.NETCoreApp 3.1
- Esquio (>= 3.1.0)
- Esquio.AspNetCore (>= 3.1.1)
- Swashbuckle.AspNetCore.SwaggerGen (>= 5.5.1)
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 | 376 | 7/17/2020 |