ASP.NET Core Web API 6.0 基础学习
半夏创建Web Api 6.0教程
返回时间格式化
- nuget安装
Microsoft.AspNetCore.Mvc.NewtonsoftJson
- Program.cs 文件
//builder.Services.AddControllers()
//格式化返回时间
builder.Services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
});
本人测试没有效果,不知为啥!!!
Swagger注释和版本控制
- 右键项目 -> 属性 -> 生成 -> 输出 -> 文档文件 -> 勾选上生成包含API文档的文件
- Program.cs 文件
//builder.Services.AddSwaggerGen();
//sagger注释
builder.Services.AddSwaggerGen(options => {
//注释
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
//第二个参数为是否显示控制器注释,我们选择true
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename), true);
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//添加文档介绍
options.SwaggerDoc(version, new OpenApiInfo
{
Title = $"项目名",
Version = version,
Description = $"项目名:{version}版本"
});
});
});
- Program.cs 文件
public enum ApiVersions
{
/// <summary>
/// 版本V1
/// </summary>
V1 = 1,
/// <summary>
/// 版本V2
/// </summary>
V2 = 2
}
- Program.cs 文件
app.UseSwaggerUI(options => {
/*
options.SwaggerEndpoint($"/swagger/V1/swagger.json",$"版本选择:V1");
*/
//如果只有一个版本也要和上方保持一致
typeof(ApiVersions).GetEnumNames().ToList().ForEach(version =>
{
//切换版本操作
//参数一是使用的哪个json文件,参数二就是个名字
options.SwaggerEndpoint($"/swagger/{version}/swagger.json",$"版本选择:{version}");
});
});
- 控制器上加特性
[ApiExplorerSettings(GroupName ="V1")]
[HttpGet]
public IEnumerable<WeatherForecast> Get(Wea weather)
{
}
使用appsetting.json的数据
- appsetting.json中追加
"AllowedHosts": "*",
"A": "111111111",
"B": 1,
"User": {
"username": "liai",
"age": 22
- Program.cs 文件
- 在 var app = builder.Build(); 之前添加,用断点可以知道是否获取数据
//一级目录
var X1 = builder.Configuration["A"];
//二级目录下的文件
var X2 = builder.Configuration["Logging:LogLevel:Default"];
//获取并转为某某类型
var X3 = builder.Configuration.GetValue<int>("B");
//获取并序列化为某某类型
var X4 = builder.Configuration.GetSection("User").Get<user>();
var app = builder.Build();
- Program.cs 文件最下面添加一个类。或者新建类。来装User
public class user
{
public int age { get; set; }
public string username { get; set; }
};
IOC注入,使用appsetting.json的数据
- WeatherForecastController.cs
- 字段
public IConfiguration Configuration { get; set; }
- 注入
public WeatherForecastController(ILogger<WeatherForecastController> logger,IConfiguration configuration)
{
_logger = logger;
Configuration = configuration;
}
- 使用
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
var X1 = Configuration["A"];
}