Posteriormente a consultar con especialistas en esta materia, programadores de varias áreas y profesores hemos dado con la solución al dilema y la dejamos plasmada en esta publicación.
Solución:
Resuelto por:
- Agregando el Microsoft.AspNet.WebApi.Versioning.ApiExplorer paquete
-
Usando el explorador de API versionado como se muestra a continuación (tenga en cuenta que tuve que mover el código de SwaggerConfig.cs en WebApiConfig.cs debido a problemas de inicialización):
var apiExplorer = config.AddVersionedApiExplorer(options => options.GroupNameFormat = "'v'VVV"; ); var versionSupportResolver = new Func
((apiDescription, version) => apiDescription.GetGroupName() == version); var versionInfoBuilder = new Action (info => foreach (var group in apiExplorer.ApiDescriptions) info.Version(group.Name, $"MyAPI vgroup.ApiVersion"); ); config .EnableSwagger("apiVersion/swagger", swagger => swagger.OperationFilter (); swagger.MultipleApiVersions(versionSupportResolver, versionInfoBuilder); swagger.IncludeXmlComments(WebApiConfig.XmlCommentsFilePath); ) .EnableSwaggerUi(swaggerUi => swaggerUi.EnableDiscoveryUrlSelector(); swaggerUi.DocExpansion(DocExpansion.List); );
ValueV1Controller.cs
[RoutePrefix("api/v1/value")]
public class ValueV1Controller : ApiController
[Route("get")]
public IEnumerable Get()
return new string[] "value1", "value2" ;
ValueV2Controller.cs
[RoutePrefix("api/v2/value")]
public class ValueV2Controller : ApiController
[Route("get")]
public IEnumerable Get()
return new string[] "value1.2", "value2.2" ;
SwaggerConfig.cs
public class SwaggerConfig
public static void Register()
var thisAssembly = typeof(SwaggerConfig).Assembly;
GlobalConfiguration.Configuration
.EnableSwagger(c =>
c.MultipleApiVersions(
(apiDesc, version) =>
var path = apiDesc.RelativePath.Split('/');
var pathVersion = path[1];
return CultureInfo.InvariantCulture.CompareInfo.IndexOf(pathVersion, version, CompareOptions.IgnoreCase) >= 0;
,
(vc) =>
vc.Version("v2", "Swashbuckle Dummy API V2");
vc.Version("v1", "Swashbuckle Dummy API V1");
);
)
.EnableSwaggerUi(c =>
c.EnableDiscoveryUrlSelector();
);
Si posees alguna desconfianza o capacidad de aumentar nuestro crónica eres capaz de realizar una observación y con gusto lo leeremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)