在使用属性路由时,是否可以在Swagger UI / Swashbuckle中利用MultipleApiVersions?
具体来说,我实现了版本控制:
using System.Web.Http; namespace RESTServices.Controllers.v1 { [Route("api/v1/Test")] public class TestV1Controller : ApiController { ... }
版本2将位于v2名称空间中.在名为TestV2Controller的控制器中.路线中有v2.
是否有可能传递一个lambda,这将允许这个?我发现了一个编译的lambda在线样本,但随后Swagger完全停止了工作.无法在浏览器中点击断点或看到Swagger.
解决方法
.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"); } ))