加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:14:50 所属栏目:asp.Net 来源:网络整理
导读:在使用属性路由时,是否可以在Swagger UI / Swashbuckle中利用MultipleApiVersions? 具体来说,我实现了版本控制: using System.Web.Http;namespace RESTServices.Controllers.v1{ [Route("api/v1/Test")] public class TestV1Controller : ApiController {
在使用属性路由时,是否可以在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");
        }
        ))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读