我有一些额外的DTO类需要能够从TypeScript中使用,但在控制器操作中没有用处。它们将使用不同的机制(SignalR)发送/接收。我仍然想使用Swagger来描述类型,因为我可以使用Swagger CodeGen来生成TypeScript定义。
我可以让Swashbuckle在Swagger文档中包含任意DTO,这些DTO不是动作的参数或结果吗?
答案 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