net framework asp attributes asp.net-web-api2 swagger swagger-ui swashbuckle

attributes - framework - Aproveche MultipleApiVersions en Swagger con control de versiones de atributos



swashbuckle swagger (1)

¿Es posible aprovechar MultipleApiVersions en Swagger UI / Swashbuckle cuando se utiliza el enrutamiento de atributos?

Específicamente, implementé el control de versiones por:

using System.Web.Http; namespace RESTServices.Controllers.v1 { [Route("api/v1/Test")] public class TestV1Controller : ApiController { ... }

La versión 2 estaría en un espacio de nombres v2. En un controlador llamado TestV2Controller. La ruta tendría v2 en ella.

¿Es posible pasar una lambda que permita esto? Encontré una muestra de lambda en línea que se compiló, pero luego Swagger dejó de funcionar por completo. No se pudo llegar a los puntos de interrupción o ver a Swagger en el navegador.


.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"); //add this line when v2 is released // ReSharper disable once ConvertToLambdaExpression vc.Version("v1", "Swashbuckle Dummy API V1"); } ))