需要将现有模型(非内联)添加到 .Net core API 中的 Swagger 架构中

str*_*pro 3 .net swagger swashbuckle openapi

我正在为基于 .Net core 6 的 API 生成 Swagger 文档。我有一些错误模型将由我的网关返回。这些不会在我的任何 API 端点中使用/返回。我想将这些模型添加到 Swagger 文档架构集合中。如果我遵循内联方式,我就能够成功添加它们。有没有办法将现有模型包含在 Swagger 架构集合中?

我还想将 webhook 模型和示例包含到模式集合中,而无需通过内联选项。

谢谢你的时间。

小智 5

您可以执行以下操作将模型添加到架构集合中。

创建自定义文档过滤器

public class CustomDocumentFilter : IDocumentFilter
{
    public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
    {
        context.SchemaGenerator.GenerateSchema(typeof(GWErrorModel), context.SchemaRepository);
    }
}
Run Code Online (Sandbox Code Playgroud)

将其添加到program.cs

   builder.Services.AddSwaggerGen(o =>
   {
      o.DocumentFilter<CustomDocumentFilter>();
   });
Run Code Online (Sandbox Code Playgroud)

您将看到模型已添加到架构集合中。

在此输入图像描述

希望能帮助到你。