C# Web API 是一种基于 .NET 平台(包括但不限于.NET Framework 和 .NET Core)构建 HTTP 服务的框架,用于创建 RESTful Web 服务。REST(Representational State Transfer)是一种软件架构风格,它利用HTTP协议的特性(如GET、POST、PUT、DELETE等方法)来操作资源。
创建新项目
选择ASP.NET Core Web Api
输入项目名称:自定义名称
- 更换自己的项目位置
选择框架:.NET 8.0(长期支持)
- 其他安照默认配置;
- 建议勾选不使用顶级语句
- 点击创建即可!
运行测试
- 点击运行;自动进入Swagger Api页面
配置Swagger
注释配置
- 在Swager页面显示注释信息
- 为提高代码的可读性,会在类和方法前添加注释
- 方便前端调用调试
/// <summary>
/// 天气预报控制器
/// </summary>
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
/// <summary>
/// 获取天气预报
/// </summary>
/// <returns></returns>
[HttpGet(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
}
}
- 找到项目中调用Swagger的位置
- Program.cs启动文件中
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
#region 配置Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
#endregion
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
#region 使用Swagger
app.UseSwagger();
app.UseSwaggerUI();
#endregion
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();
}
- 读取控制器api生成的xml文件
#region 配置Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(option =>
{
// xml文档绝对路径--读取控制器api生成的xml文件
var file = Path.Combine(AppContext.BaseDirectory, "Downey.Books.WebApi.xml");
// true : 显示控制器层注释
option.IncludeXmlComments(file, true);
// 对action的名称进行排序
option.OrderActionsBy(o => o.RelativePath);
});
#endregion
- 点击项目 - 属性
- 生成–输出–勾选文档文件
- 生成包含API文档的文件
- 点击运行;如下图配置完成
- Xml文件位置