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 Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.1 is compatible. |
-
.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 | 548 | 7/17/2020 |