是否可以将Swashbuckle配置为包含不是参数或操作结果的DTO?

时间:2017-09-06 01:23:16

标签: c# asp.net-core swagger swashbuckle

我有一些额外的DTO类需要能够从TypeScript中使用,但在控制器操作中没有用处。它们将使用不同的机制(SignalR)发送/接收。我仍然想使用Swagger来描述类型,因为我可以使用Swagger CodeGen来生成TypeScript定义。

我可以让Swashbuckle在Swagger文档中包含任意DTO,这些DTO不是动作的参数或结果吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用 IDocumentFilter

    private class ApplyDocumentVendorExtensions : IDocumentFilter
    {
        public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer)
        {
            schemaRegistry.GetOrRegister(typeof(ExtraType));
            schemaRegistry.GetOrRegister(typeof(BigClass));                
        }
    }

需要在SwaggerConfig部分的EnableSwagger中添加该类,如下所示:c.DocumentFilter<ApplyDocumentVendorExtensions>();


我在这里有一些例子: https://github.com/heldersepu/SwashbuckleTest/blob/master/Swagger_Test/App_Start/SwaggerConfig.cs