IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Net Core添加Swagger文档 -> 正文阅读

[开发测试]Net Core添加Swagger文档

Net Core添加Swagger文档

一、创建.NET CORE WEB应用程序

vs2019创建NET CORE的ASP .NET CORE WEB应用程序,两个随便选择一个
在这里插入图片描述

二、添加Nuget包

.程序集 Swashbuckle.AspNetCore, Version=5.5.1.0, Culture=neutral, PublicKeyToken=4232c99127b3c254

安装NuGet包:Swashbuckle.AspNetCore
注释:这里我使用5.5.1版本的,如下图:
在这里插入图片描述

三、配置Startup文件

.引用

using Microsoft.AspNetCore;

.添加配置

  1. 在Startup的ConfigureServices方法里加入下面的代码,注册Swagger生成器,定义一个文档,设置xml文档的注释路径
    在这里插入图片描述
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            //配置Swagger
            //注册Swagger生成器,定义一个Swagger 文档
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("api", new OpenApiInfo
                {
                    Version = "v1",
                    Title = "api接口文档",
                    Description = "NetCoreWebApi",
                    Contact = new OpenApiContact
                    {
                        Name = "NetCoreWebApi"
                    }
                });
                // 为 Swagger 设置xml文档注释路径
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
               
            });
            services.AddMvc(x =>
            {
                x.EnableEndpointRouting = false;
            });
  1. 在Configure方法里加入下面的代码,启用
    在这里插入图片描述
app.UseSwagger();
            //启用中间件服务生成Swagger,指定Swagger JSON终结点
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/api/swagger.json", "api");
                c.RoutePrefix = string.Empty;//设置根节点访问
                //c.RoutePrefix = "swagger"; //重写路由头
                //c.DefaultModelsExpandDepth(-1); //隐藏schema
            });
            app.UseMvc();

.swagger加载接口xml注释
右击项目继续选择属性,在生成中选择输出路径,并且勾选xml文档
在这里插入图片描述
在这里插入图片描述

四、配置launchSettings.json文件

找到【launchSettings.json】修改launchUrl为“index.html”
在这里插入图片描述

五、成功展示

在这里插入图片描述

六、常见问题处理

  1. 在浏览界面时候报错如下:
    在这里插入图片描述
    记录下导致错误的几种情况:

一. 部分方法或者参数没有放好注释。

部分Public的方法没有设置好路由,仅在Controller级别设置了路由。将无需暴露的方法都设置为私有的。考虑在Controller级别设置[Route(“api/[controller]/[action]”)]

二. 生成的XML文件没有使用相对地址。注意:默认使用的是绝对地址,源码位置一有变化就会出问题。

三. 有可能是没写HTTP方法,如 [HttpGet]、[HttpPost] ,在方法上添加上即可

四. XML文件需设置为“始终复制”

五. 检查路由是否是独一无二,否则有冲突可能

[Route("api")]
[ApiController]
public class MyApiForFooAbcCalcController : ControllerBase
{
   // ...
}

例如:[Route("api/forFooAbcCalc")]
另一个:[Route("api/forFooXYZCalc")]

六. 最后看控制台,查看原因。发现原因是:Ambiguous HTTP method for action,翻译后是“不明确的HTTP操作方法”。估计是有代码没标明HTTP方法,具体情况具体看报错详情。
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:55:28  更:2022-03-30 18:56:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:10:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码