首页 > 编程语言 >Asp.NET core 6:添加Swagger,简化教程和常见问题处理

Asp.NET core 6:添加Swagger,简化教程和常见问题处理

时间:2022-09-27 18:24:29浏览次数:82  
标签:core 控制器 常见问题 options 注释 添加 Swagger true Asp

 

 

--------------- ≯ 安装 ≮ ---------------

一、添加包:

Swashbuckle.Asp.NetCore

二、 编辑Program.cs

1、添加到启动:

 

 


//Swagger配置
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "APP更新 API",
Description = "",
});

options.CustomSchemaIds(x => x.FullName);
options.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());


// using System.Reflection;
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename),true);
});

2、生成项目的xml文件

Web项目属性

 

 

 

3、强制显示(有的教程没有这一步)

 

 

 

if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(
c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
}
);
}

 4、修改链接:

修改文件:

<项目地址>\Views\Shared\_layout.cshtml

添加代码:

 

 

<li class="nav-item">
<a class="nav-link text-dark" href="/Swagger">Swagger</a>
</li>

(注意、修改之后不会立即更新,需要按下 VS 里面的【热重载】按钮)

--------------- ≯ 常见问题 ≮ ---------------

一、显示控制器上面的注释。

1、控制器上添加 注释:

 

/// <summary>
/// 类注释、控制器注释
/// </summary>

2、Program.cs

开启控制器注释参数,第2个参数显示声明为 true

options.IncludeXmlComments(<地址>,【true】)

 

二、“ Internal Server Error /swagger/v1/swagger.json ”错误

原因:

某个类的方法或者控制器的Action,包括基类当中的,没有声明 【options】。

解决办法: 

给相应的类、方法添加

[HttpGet]
[HttpPost]

或者把方法改为protected.

在类或者方法上面添加声明:

  [ApiExplorerSettings(IgnoreApi = true)]

 

三、引用了一个包含多个public方法的基类,怎么样在Swagger当中屏蔽基类的public方法

基类上声明:

  [ApiExplorerSettings(IgnoreApi = true)]

 

 

 

派生类声明:

[ApiExplorerSettings(IgnoreApi = false)]

 

 

四、使用了当中Web项目(asp.net core项目)以外类库里面的Model类,希望在Swagger里面显示Model类的注释和说明:

首先让model类自动生成xml

然后在Program.cs添加处理:

 

 

 

五、数据自动校验(模型绑定)和默认值:

 

 

 

/// <summary>
/// 手机号码
/// </summary>
[DefaultValue("13311111111")]
[Required(ErrorMessage = "手机号码不能为空")]
[Phone(ErrorMessage = "手机号码格式不对")]
public string Mobile { get; set; }

 

 

最后付后一个代码示例:

下载地址

 

标签:core,控制器,常见问题,options,注释,添加,Swagger,true,Asp
From: https://www.cnblogs.com/xpnew/p/16735114.html

相关文章

  • jenkins配置Linux子节点常见问题
    操作系统:虚拟机安装CentOS-7-x86_64-DVD-1810.isoRemoterootdirectory:/home/admin/jenkinsLaunchmethod:Launchagentbyconnectingittothemaster1.离线安装G......
  • ASP.NET Core GRPC 和 Dubbo 互通
    一.前言Dubbo是比较流行的服务治理框架,国内不少大厂都在使用。以前的Dubbo使用的是私有协议,采集用的hessian序列化,对于多语言生态来说是极度的不友好。现在Dubbo发......
  • NetCoreWebApi3.0-------MiniProfiler使用教程
    参考博客:ASP.NETCoreWebAPI中的分析工具MiniProfiler-LamondLu-博客园(cnblogs.com) 注意事项:1.不要盲目copy别人的代码varhtml=MiniProfiler.Current.Re......
  • Avue 常见问题 (工作总结)
    vaildData验证对象验证是否为空的任何类型数据,为空择取默认的设置值varobj={}console.log(this.vaildData(obj,'默认值'))//默认值console.log(this.vaildD......
  • 彻底搞清楚.net core,.net framework,asp.net core等的概念
    如图:先上一张图,此图经常见到总体的脉络结构大致都是这样,自下而上,越往下越是基础层,其中.netstandardlibrary定义了一些列的标准函数接口,由不同框架去实现。也就是net......
  • asp.net mvc返回Json数据
    注意返回一个自定义的object数组//01返回一个自定义的object数组publicActionResultIndex(){varres=newJsonResult();varname="小华";varag......
  • Asp.net core基础(一)Entity FrameworkCore的增删查改
    一、EntityFrameworkCore的介绍EntityFrameworkCore是.netcore中的ORM(objectrelationalmapping[对象关系映射])框架,它可以让开发人员以面向对象的方式进行数据库操......
  • NetCore 生成JWT
    调用privatereadonlyIESP_UsersBLL_UsersBLL;privatereadonlyIConfiguration_configuration;privateJWTService_jwtService;......
  • freeswitch 安装常见问题汇总
    freeswitch编译过程中可能遇到的问题:可能遇到的问题及解决方案1,报错:make[4]:Enteringdirectory'/home/root/code/freeswitch-1.8.5/src/mod/applications/mod_sign......
  • EF Core – 7.0 New Features
    前言这篇不会细谈功能,只是一个总链接. 参考Docs–What'sNewinEFCore7.0 BreakingChange我follow EFCore–搭建单侧环境 做了一遍,在运行 dotne......