【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"];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guistar~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值