从ApiControllers(C#,.Net 4.5)生成OpenApi 3

时间:2018-12-10 15:38:22

标签: swagger swashbuckle openapi nswag openapi-generator

我们正在使用Swashbuckle在Asp .Net 4.5(不是Asp .Net核心)上使用C#来生成swagger 2.0 json。我正在尝试调整我们的解决方案以生成openApi 3.0:

  • 我了解Swashbuckle for .Net 4.5当前不支持openApi 3.0
  • 我尝试使用nSwag,但是无论使用UseSwaggerUi3函数还是使用SchemaType = SchemaType.OpenApi3的GenerateForControllersAsync,似乎生成的openApi始终为2.0。

.Net 4.5的nSwag支持吗?如果没有,是否有其他工具或解决方案而不升级到.Net core?

我使用nSwag尝试的代码:

var settings = new WebApiToSwaggerGeneratorSettings
        {
            DefaultUrlTemplate = "api/{controller}/{action}/{id}"
        };

        var jsonSettings = new JsonSchemaGeneratorSettings();
        jsonSettings.SchemaType = SchemaType.OpenApi3;
        var schemaGen = new SwaggerJsonSchemaGenerator(jsonSettings);
        var generator = new WebApiToSwaggerGenerator(settings, schemaGen);
        var document = Task.Run(async () => await generator.GenerateForControllersAsync(controllers))
            .GetAwaiter().GetResult();
        var x= document.ToJson();

谢谢

0 个答案:

没有答案