net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger
Posted 圆滚滚的胖狸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger相关的知识,希望对你有一定的参考价值。
.net core webapi项目,连接mysql云数据库,orm采用efcore,最终linux布署
开发工具vs2022,dotnet版本 .net6。
传统的vs项目建立方式
一、建立WebApi项目
先将项目运行起来看一下
看到swagger页面,说明项目已经正常的被建立
也可以尝试下项目自带的api
二、配置swagger使用
在program.cs添加以下语句
var builder = WebApplication.CreateBuilder(args);
//在这里添加以下语句,这是添加项目路径和配置文档
var basePath = AppContext.BaseDirectory;
var config = new ConfigurationBuilder()
.SetBasePath(basePath)
.AddJsonFile("appsettings.json",optional:true,reloadOnChange:true)
.Build();
#region 添加Swagger注释
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();//这是原本就有的
builder.Services.AddSwaggerGen(options => //这一句也是原来就有,需要修改成这样子
options.SwaggerDoc("v1", new OpenApiInfo
Version = "v1",
Title = "ToDo API",
Description = "An ASP.NET Core Web API for NET6Demo ToDo items",
);
var xmlPath = Path.Combine($"basePath/ApiDoc", "NET6Demo.xml"); // 这里的文件,需要了自己手动创建,并将属性改为 “始终复制”
options.IncludeXmlComments(xmlPath);
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
Description = "JWT授权(数据将在请求头中进行传输) 在下方输入Bearer token 即可,注意两者之间有空格",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Scheme = "Bearer"
);
options.AddSecurityRequirement(new OpenApiSecurityRequirement()
new OpenApiSecurityScheme
Reference = new OpenApiReference
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
,Scheme = "oauth2",Name = "Bearer",In=ParameterLocation.Header,
,new List<string>()
);
);
#endregion
var app = builder.Build();//在这一句后面添加
#region 启用swaggerUI
app.UseSwagger();
app.UseSwaggerUI(c =>
c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
c.RoutePrefix = String.Empty;
c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);
c.DefaultModelExpandDepth(-1);
);
#endregion
再次运行,swagger首页已经改变
注意,可能在这里启动后会出现无法打开网页,那是因为启动的路径发生了改变
我们需要在api项目中的launchSettings.json文件中改变设置
launchSettings.json
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings":
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress":
"applicationUrl": "http://localhost:8305",
"sslPort": 44311
,
"profiles":
"NET6Demo_WebApi":
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"launchUrl": "",
"applicationUrl": "https://localhost:7033;http://localhost:5033",
"environmentVariables":
"ASPNETCORE_ENVIRONMENT": "Development"
,
"IIS Express":
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables":
"ASPNETCORE_ENVIRONMENT": "Development"
不过swagger的文档真的不如Apifox好用,所以后期还是要用Apifox做文档。因此这里不再过多的描述
三、建立配套类库,并配置依赖顺序
删除各项目下的class1.cs
其它项目的依赖,可以随着代码编写逐渐加入
至于项目这样建立的目的,为的是搭建框架的Ioc,引入autofac
以上是关于net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger的主要内容,如果未能解决你的问题,请参考以下文章
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)二配置log4net
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)六添加身份验证,引入JWT
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger
net6 项目搭建及引用框架记录(log4net,autofac,exception,api result,jwt,efcore)一建立项目,使用Swagger