attributes – 利用属性版本控制在Swagger中利用MultipleApiVersions

前端之家收集整理的这篇文章主要介绍了attributes – 利用属性版本控制在Swagger中利用MultipleApiVersions前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用属性路由时,是否可以在Swagger UI / Swashbuckle中利用MultipleApiVersions?

具体来说,我实现了版本控制:

  1. using System.Web.Http;
  2.  
  3. namespace RESTServices.Controllers.v1
  4. {
  5. [Route("api/v1/Test")]
  6. public class TestV1Controller : ApiController
  7. { ... }

版本2将位于v2名称空间中.在名为TestV2Controller的控制器中.路线中有v2.

是否有可能传递一个lambda,这将允许这个?我发现了一个编译的lambda在线样本,但随后Swagger完全停止了工作.无法在浏览器中点击断点或看到Swagger.

解决方法

  1. .EnableSwagger(c => c.MultipleApiVersions(
  2. (apiDesc,version) =>
  3. {
  4. var path = apiDesc.RelativePath.Split('/');
  5. var pathVersion = path[1];
  6.  
  7. return CultureInfo.InvariantCulture.CompareInfo.IndexOf(pathVersion,version,CompareOptions.IgnoreCase) >= 0;
  8. },vc =>
  9. {
  10. vc.Version("v2","Swashbuckle Dummy API V2"); //add this line when v2 is released
  11.  
  12. // ReSharper disable once ConvertToLambdaExpression
  13. vc.Version("v1","Swashbuckle Dummy API V1");
  14. }
  15. ))

猜你在找的asp.Net相关文章