zoukankan      html  css  js  c++  java
  • .net core启用Swagger

       官方文档推荐两种框架:Swashbuckle 和 NSwag,这里使用 Swashbuckle 来生成接口文档。

    目录

    1. 安装包
    2. 添加服务
    3. 配置中间件
    4. 添加 UI
    5. 设置接口详细信息

    1 安装包

    需要安装的包:
    Swashbuckle.AspNetCore.Swagger,Swashbuckle.AspNetCore.SwaggerGen,Swashbuckle.AspNetCore.SwaggerUI

    或者安装一个完整的包
    Swashbuckle.AspNetCore

      这里我们为了省事,所以使用完整的包。点击工具->NuGet 包管理器->程序包管理器控制台。在控制台中输入:

    Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc4
    

    2 添加服务

      在Startup.ConfigureServices中添加 Swagger 服务:

    services.AddSwaggerGen(x =>
    {
        x.SwaggerDoc("v1", //必须和UI的路径相同
            //相关的文字信息
            new OpenApiInfo() {
                Title = "MyApi",
                Version = "v1",
                Description ="第一个版本"
            });
    });
    

    3 配置中间件

      添加app.UseSwagger();中间件,至此可以打开浏览器访问http://localhost:<port>/swagger/v1/swagger.json页面上显示出生成的 json 文档。如图:

    4 添加 UI

      我们需要在中间件中添加 UI 的中间件:

    app.UseSwaggerUI(c =>{
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "版本名称");
        //将接口文档设置为首页
        //如果不设置为首页访问地址为:/swagger/index.html
        c.RoutePrefix = string.Empty;
    });
    

      启动程序可以看见:

    5 设置接口详细信息

      虽然这样可以一目了然的看到有哪些接口,但是在实际使用中还需要添加一些接口注释。Swagger 读取 xml 文件进行展示,所以先在项目文件中添加

    <PropertyGroup>
        <GenerateDocumentationFile>true</GenerateDocumentationFile>
        <NoWarn>$(NoWarn);1591</NoWarn>
    </PropertyGroup>
    

      修改注入服务:

    services.AddSwaggerGen(x =>{
        x.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo() { Title = "MyApi", Version = "v1", Description ="第一个版本"});
    
        //读取xml文件的名字:项目名.xml
        var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    
        //写成一个绝对路径
        var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    
        //将这个文件添加到配置
        x.IncludeXmlComments(xmlPath);
    });
    

      接口注释与对应的效果:


    404 状态码在下面就不截图了

    总结

      按照官方文档走了一遍,不是很难倒是也需要把各个地方对应起来,如果错误的地方,请各位留言。

  • 相关阅读:
    《精通.NET互操作1.2》C# PInvoke使用c++dll
    WPF的dataGrid基本用法
    C#中$的用法
    ASP.NET WebApi 实现Token验证
    Ajax请求WebAPI传递多参数的方法
    ajax调用ASP.NET MVC控制器传递参数
    js子窗口调用父窗口函数并传递对象给父窗口的方法
    H5本地存储和本地数据库
    非对称加密RSA的C#实现
    在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)
  • 原文地址:https://www.cnblogs.com/zyz-Notes/p/12030281.html
Copyright © 2011-2022 走看看