zoukankan      html  css  js  c++  java
  • .NetCore WebApi —— Swagger版本控制

    目录:

    .NetCore WebApi——Swagger简单配置

    .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger)

    .NetCore WebApi —— Swagger版本控制

    版本控制的好处是显而易见的,利用Swagger展示不同版本的API更能体现效果。

    1.安装Nuget包:Microsoft.AspNetCore.Mvc.Versioning

    2. 配置Startup类

     2.1  添加新成员 ,用来获取API版本信息

         /// <summary>
            /// Api版本信息
            /// </summary>
            private IApiVersionDescriptionProvider provider;

     2.2 在 ConfigureServices 方法中注册服务

    复制代码
    services.AddApiVersioning(option =>
                {
                    // 可选,为true时API返回支持的版本信息
                    option.ReportApiVersions = true;
                    // 不提供版本时,默认为1.0
                    option.AssumeDefaultVersionWhenUnspecified = true;
                    // 请求中未指定版本时默认为1.0
                    option.DefaultApiVersion = new ApiVersion(1, 0);
                }).AddVersionedApiExplorer(option =>
                {
              // 版本名的格式:v+版本号 option.GroupNameFormat = "'v'V"; option.AssumeDefaultVersionWhenUnspecified = true; }); this.provider = services.BuildServiceProvider().GetRequiredService<IApiVersionDescriptionProvider>();
    复制代码

     2.3 遍历API版本信息,在原有的AddSwaggerGen方法中循环处理:红色部分

    复制代码
               // 注册Swagger服务
                services.AddSwaggerGen(c =>
                {
                    // 多版本控制
                    foreach (var item in provider.ApiVersionDescriptions)
                    {
                        // 添加文档信息
                        c.SwaggerDoc(item.GroupName, new Info
                        {
                            Title = "CoreWebApi",
                            Version = item.ApiVersion.ToString(),
                            Description = "ASP.NET CORE WebApi",
                            Contact = new Contact
                            {
                                Name = "Jee",
                                Email = "xiaomaprincess@gmail.com",
                                Url = "https://www.cnblogs.com/jixiaosa/"
                            }
                        });
                    }
                    
    复制代码

    2.4 修改 Configure 方法中的 SwaggerUI方法,同样做循环处理

    复制代码
           // 配置SwaggerUI
                app.UseSwaggerUI(c =>
                {
                    foreach (var item in provider.ApiVersionDescriptions)
                    {
                        //c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreAPI"); 单版本
                        c.SwaggerEndpoint($"/swagger/{item.GroupName}/swagger.json", "CoreAPI"+item.ApiVersion);
                    }
                    c.RoutePrefix = string.Empty;
                });
    复制代码

    2.5 在控制器中应用

     2.5.1 在Test控制器中添加特性标签以及路由。 1.0版本

    2.5.1 在Value控制器中添加特性标签以及路由。 2.0版本

    3. 启动项目查看效

    Gif

    github:   https://github.com/xiaoMaPrincess/Asp.NetCore-WebApi

    多层架构版本:https://github.com/xiaoMaPrincess/.NetCoreWebApi

    原作者:千金不如一默

  • 相关阅读:
    javascript与XML
    错误调试
    Js节点操作
    vue渲染时对象里面的对象的属性提示undefined,但渲染成功
    html5脚本编程
    用canvas把页面中所有元素的轮廓绘制出来
    HTTP的三次握手
    http协议的发展历史
    5层网络模型介绍
    http主要内容流程介绍
  • 原文地址:https://www.cnblogs.com/spring_wang/p/13212972.html
Copyright © 2011-2022 走看看