我有下面的 Swagger 的代码和模型类。我的其他模型可以在Swagger UI上看到。只有这一个是失踪,不知道为什么和我在这里失踪。我在catch块的控制器代码中使用这个模型来返回错误。它仍然有一个问题。
//Swagger.cs file
public static class SwaggerConfig
{
public static void ConfigureSwaggerServices(this IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Title = "API",
Version = "v1",
Description = "APIs."
});
// Set the comments path for the Swagger xml and UI.
var xmlCommentsFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlCommentsFile);
c.IncludeXmlComments(xmlPath);
c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}/Models.xml");
});
}
public static void ConfigureSwaggerMiddleware(this WebApplication app)
{
if (app.Environment.IsDevelopment()|| Environment.GetEnvironmentVariable("ENVIRONMENT") =="Dev")
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.yaml", "API V1");
});
}
}
}
模型类文件如下。
public class ErrorList
{
public ErrorList()
{
Errors = new List<Errors>();
}
public List<Errors> Errors { get; set; }
}
1条答案
按热度按时间vjrehmav1#
1.确保在应用程序启动期间调用SwaggerConfig.ConfigureSwaggerServices方法。该方法负责配置Swagger并添加必要的XML注解。
1.验证ErrorList模型的XML文档文件是否已生成并显示在正确的位置。在您的代码中,您已经包含了行c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}/Models.xml”);,这表明您有一个单独的XML文件来记录模型。请确保XML文件包含ErrorList类的文档。
1.检查ErrorList类本身中的XML注解。确保使用XML注解正确地记录属性和类本身,因为Swagger使用这些注解来生成文档。
1.确认在项目设置中正确引用了XML文档文件。右键单击项目,选择“Properties”,导航到“Build”选项卡,并确保“XML documentation file”字段填充了正确的XML文件名。
现在重建。