.net core 3.1 WebAPI 搭建swagger.json,在Startup.cs类中
1.需要注意的是
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen(c =>
{
//v1 这个后面也要统一大小写
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "My API", Version = "v1" });
var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
var xmlPath = Path.Combine(basePath, "SwaggerDemo.xml");//SwaggerDemo.xml这个在解决方案生成的时候xml生成文档
c.IncludeXmlComments(xmlPath);
});
//最坑的就是这个,忘记加了,导致一直报错
services.AddSwaggerGen(sw =>
{
sw.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseSwagger();
app.UseSwaggerUI(c=> {
//v1 跟上面的大小写一致
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
2.public所在的control都要注释
3.生成的XML文件没有使用相对地址。注意:默认使用的是绝对地址,源码位置一有变化就会出问题
4.XML文件需设置为“始终复制”
谨记!