У меня есть небольшая программа, которая принимает сборку и производит все соответствующие OpenApiDocument
. Теперь мой вопрос: можно ли это импортировать в Swagger? Я знаю, что вы можете добавить фильтры для изменения документов после их создания, но мне интересно, можете ли вы дать Swagger документы и обойти автоматическое создание.
Внутри IDocumentFilter
это позволяет вам измените OpenApiDocument
, который создает Swagger, но я хотел бы использовать свой собственный OpenApiDocument
.
public interface IDocumentFilter
{
void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context);
}
Здесь я хочу настроить Swagger для использования предопределенного OpenApiDocument
:
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(setupAction => TODO);
}
public void Configure(IApplicationBuilder app, IApiVersionDescriptionProvider provider)
{
}
Вот общедоступные методы, которые я хочу использовать при запуске API при настройке Swagger:
public static IEnumerable<OpenApiDocument> CreateDocuments(this Assembly assembly, string title, string description, string name, string email)
{
return ControllerInfo.FindControllers(assembly)
.GroupBy(controller => controller.Version)
.OrderBy(group => group.Key)
.Select(group => CreateDocument(group.Key, group, title, description, name, email));
}
public static string ToJson(this OpenApiDocument document)
{
using var outputString = new StringWriter();
document.SerializeAsV3(new OpenApiJsonWriter(outputString));
return outputString.ToString();
}