从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

这篇具有很好参考价值的文章主要介绍了从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

传送门:从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(一)

一、设置Swagger页面为首页——开发环境

我们虽然可以在输入 /swagger 后顺利的访问 Swagger UI 页面,但是我们发现每次运行项目都会默认访问 /weatherforecast 这个接口,想要将启动页设为 /swagger (或者其他页面)就需要用到配置文件 launchSettings.json。

在如下图中所示的位置找到并打开 launchSettings.json 文件,在如下图中所示的地方修改“launchUrl”属性(有该属性则修改,无该属性则手动添加)的值由“weatherforecast”为“swagger”并保存,再一次按 F5 键运行项目就会发现直接访问的地址为“https://localhost:44390/swagger”。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

二、设置Swagger页面为首页——生产环境

上述方法在本地调试可以直接运行,但是如果部署到服务器,就会发现之前的那种默认启动首页无效了,还是需要每次手动在域名后边输入“/swagger”。

幸运的是,Swagger 提供了一个扩展,可以指定一个空字符作为 Swagger 的地址。在 Startup.cs 文件的 Startup 类的 Configure 方法中配置中间件,如下图所示,代码如下所示。

            #region Swagger
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/DocV1/swagger.json", "DocV1");//此为之前配置内容
                c.RoutePrefix = "";//此为本次新增配置项
            });
            #endregion

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

然后把配置文件 launchSettings.json 的 launchUrl 属性注释或删除,如下图所示,这样无论是本地开发环境还是生产环境,都可以默认加载 Swagger UI 页面了。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

三、添加注释

1、给接口添加注释

首先给接口方法加上注释:打开默认生成的 WeatherForecast 控制器,分别给控制器和接口添加注释,代码如下所示。

    /// <summary>
    /// 天气预报
    /// </summary>
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;

        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }

        /// <summary>
        /// 获取天气
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            var rng = new Random();
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }

添加好注释之后,接下来就需要把注释信息显示在 Swagger 中,这时候需要用到 XML 文档,因为它是通过 XML 来维护 Swagger 文档的一些信息。

鼠标右键单击项目名称,在弹出的菜单中选择“属性”选项,在属性选项卡页面中的“生成”选项的“输出”选项的“文档文件”选项下,勾选“生成包含API文档的文件”选择框,“XML 文档文件路径”此处使用默认位置,故保留为空,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

重新编译项目后,系统会在 bin\Debug\net5.0 路径下默认生成一个与项目名称相同的 XML 文件,前后对比如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

接下来修改 Swagger 服务注入的代码。在 Startup.cs 文件的 Startup 类的 ConfigureServices 方法中进行修改,代码如下所示。

            #region Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("DocV1", new OpenApiInfo
                {
                    Version = "v0.1.0",
                    Title = "ZOHC测试文档",
                    Description = "一个Swagger教程文档",
                    Contact = new OpenApiContact
                    {
                        Name = "张欧昊辰",
                        Email = "izohc@foxmail.com"

                    }
                });


                #region 添加注释新增内容
                var basePath = AppContext.BaseDirectory;
                var projectName = AppDomain.CurrentDomain.FriendlyName;
                var xmlPath = Path.Combine(basePath, projectName + ".xml");
                c.IncludeXmlComments(xmlPath, true);
                #endregion

            });
            #endregion

然后按 F5 启动项目,这样控制器和接口注释就都有了,前后对比效果如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

2、给Model添加注释

新建一个类库,取名为“AllTestDemo.Model”,步骤如下图所示,不再做过多文字叙述。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

当类库创建成功后,我们将“AllTestDemo”下的“WeatherForecast.cs”文件移动到新建的类库“AllTestDemo.Model”下,修改命名空间并添加上注释,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

我们按照上一小节中给“AllTestDemo”添加 XML 文档的方法,同样给“AllTestDemo.Model”添加 XML 文档。然后回到 Startup.cs 文件的 Startup 类的 ConfigureServices 方法中进行修改,代码如下所示。

                var xmlModelPath = Path.Combine(basePath, "AllTestDemo.Model.xml");
                c.IncludeXmlComments($"{xmlModelPath}", true);

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

重新编译项目后,按 F5 启动项目,这样 Model 注释就有了,前后对比效果如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

四、去掉 Swagger 警告提示

添加 Swagger 包之后,控制器不填写相应的注释,项目会有很多警告,打开错误列表查看,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

如果我们不想添加注释,又不想看到这个警告提示,可以这样做。

打开“AllTestDemo”的属性面板,在“生成”选项的“错误和警告”选项的“取消显示警告”选项下,添加“;1591”并保存,注意1591前面有分号且是英文输入法状态下输入的,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

“重新生成解决方案”后,我们看到错误列表中“AllTestDemo”项目下的警告已经没有了,仍然能看到“AllTestDemo.Model”项目下的警告信息,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

我们可按照上述同样的方法,对“AllTestDemo.Model”进行相同的处理即可。

五、忽略接口信息

如果我们不想展示某个控制器中全部或部分接口的信息,可以在 Controller  上或者 Action 上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性来忽略。

1、不添加特性

为了展示效果,在 WeatherForecastController 中添加了一个 POST 访问类型的方法,代码如下所示。

        [HttpPost]
        public void Index()
        {
        }

此时 Swagger UI 显示结果如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

2、在 Action 上添加特性

我们在系统自动生成的 Get 方法上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

按 F5 键项目启动后 Swagger UI 显示如下图所示,对比不添加特性的显示结果,我们发现 Get 类型的方法未展示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

3、在 Controller 上添加特性

我们在系统自动生成的 WeatherForecastController 上添加 [ApiExplorerSettings(IgnoreApi = true)] 特性,如下图所示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

按 F5 键项目启动后 Swagger UI 显示如下图所示,对比不添加特性的显示结果,我们发现没有接口信息展示。

从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)

-------------------------------本篇文章到此结束-------------------------------------文章来源地址https://www.toymoban.com/news/detail-411655.html

到了这里,关于从0到1手把手教你ASP.NET Core Web API项目配置接口文档Swagger(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【荣耀帐号服务】手把手教你快速web接入

    荣耀帐号开放服务基于OAuth2.0,Web应用可以获取用户授权凭证, 实现授权登录功能, 可以实现浏览器Web授权登录接入或者手机H5授权登录接入荣耀帐号。 1) 用户在应用网站上选择荣耀帐号登录 2) 应用服务器构造 /oauth2/v3/authorize 链接, 向荣耀帐号服务器发起授权请求 3) 荣耀帐号

    2024年02月10日
    浏览(40)
  • 在IIS上部署你的ASP.NET Core Web Api项目及Swagger

    与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响

    2024年02月10日
    浏览(52)
  • 不会使用 EF Core 的 Code First 模式?来看看这篇文章,手把手地教你

    Code First 是 Entity Framework Core (简称 EF Core) 的一种开发模式,它允许开发人员使用纯粹的代码来定义数据模型,通过它,可以极大地提高开发效率: 使用 Code First 开发模式,你可以专注于定义领域模型和业务逻辑,而无需关注数据库的细节,能够更快地构建应用程序 Code F

    2024年02月04日
    浏览(50)
  • 手把手教你从0搭建SpringBoot项目

    用到的工具:idea 2021、Maven 3.6.3、postman 框架:SpringBoot、Mybatis 数据库:Mysql8.0.30 安装配置参考博文 注意: 1.下载maven注意idea与Maven版本的适配: 2.为了避免每次创建项目都要改Maven配置,可以修改idea创建新项目的设置 二、安装数据库 mysql8安装参考博文 **注意:**连接不上往

    2024年02月03日
    浏览(50)
  • web分析-手把手教你怎么写小程序事件分析

    概述 小程序提供了自定义埋点方法,需要在业务代码中新增对应的代码。 区别于小程序已有的页面、用户等埋点,web分析中的自定义的方法往往与业务场景相关。 本文会按步骤详细介绍小程序的事件、事件分析、漏斗分析的创建流程。 该事件主要用于记录用户进入首页之后

    2024年02月10日
    浏览(45)
  • 图文结合手把手教你创建SpringCloud项目

    前言 Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务注册、服务发现、网关、路由、链路追踪等。Spring Cloud 并不是重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。也

    2024年04月25日
    浏览(58)
  • 手把手教你打造自己的AI聊天机器人程序(讯飞星火API)

    案例背景 最近发现科大的讯飞星火大模型可以申请API试用了,我一直想用chatgpt的API,一是因为收费买不起,二是因为网络不方便..... 现在有了科大讯飞这个国内免费的,当然要试试。 目前讯飞星火可以申请试用他们的模型API,但是只有200w的token上限(一下就能花光),而且

    2024年02月08日
    浏览(67)
  • 手把手教你将项目部署到服务器!

    一、导入centos7虚拟机: 打开VMWare,点击“打开虚拟机”,选择centos7.ova之后,选择存储路径: 点击导入: 选择“不再显示此消息”,点击“重试”按钮: 点击“编辑虚拟机设置”,修改处理器、内存、硬盘等信息后,启动 按Ctrl+Alt键可以切换到windows下。 启动成功后,输入

    2023年04月20日
    浏览(56)
  • 手把手教你用git上传项目到GitHub

    github的官方网址:https://github.com ,如果没有账号,赶紧注册一个。 点击Sign in进入登录界面,输入账号和密码登入github。 创建成功可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。 Git是目

    2024年01月18日
    浏览(52)
  • 手把手教你搭建 Webpack 5 + React 项目

    在平时工作中,为减少开发成本,一般都会使用脚手架来进行开发,比如 create-react-app 。脚手架都会帮我们配置好了 webpack,但如果想自己搭建 webpack 项目要怎么做呢?这边文章将介绍如何使用 webpack 5 来搭建 react 项目,项目地址在文末。 1.1 Webpack 的好处 试想在不使用任何打

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包