【问题标题】:How to use Swagger Codegen with .net core如何将 Swagger Codegen 与 .net 核心一起使用
【发布时间】:2018-01-31 10:15:03
【问题描述】:

我能够使用 Swashbuckle 将 Swagger UI 集成到我的 Web api 中。我还想探索 swagger codegen 功能。有人可以帮忙 - 我如何将 swagger codegen 集成到我的 web api 项目中?还是我需要下载任何工具?我希望它能够托管 codegen 并传递 json/raml 表单规范以在 .net 核心中生成客户端。

我在上面找不到足够的文档。

编辑:我想知道如何在我的 WEBAPI 中托管 codegen。

谢谢!

【问题讨论】:

  • 您查看过documentation and support forum 吗?可能会有一个“入门”指南
  • @JamieTaylor 我无法理解是否需要下载代码生成工具,或者有什么方法可以直接将它集成到代码中。就像我们为 swagger ui 所做的那样
  • 您能否澄清一下您所说的“集成 Swagger Codegen”是什么意思? 1) 为您的 API 生成客户端 SDK,以便您可以将这些 SDK 提供给您的用户。 2) 在您的应用中托管 codegen,类似于 Swagger Editor 所做的。 3) 别的?
  • @Helen 是的,我想在我的应用中托管 codegen。我已经在托管 Swagger UI,但无法找到如何托管 codegen
  • @Helen - 在他们提到使用generator.swagger.io 的网址中,所以我需要将我的文件发送到第三方网站。这个生成器可以托管在我的环境中吗?

标签: c# .net-core swagger-codegen


【解决方案1】:

现在,您可以使用Nswag。有几个代码生成器实用程序 - UI、控制台、msbuild。

【讨论】:

    【解决方案2】:

    您似乎只想从 API 的 OpenApi 规范(您的 Swagger 实现提供输入)生成 C#。

    要从 API 的 OpenApi 规范文件生成代码(例如 C#),您可以执行以下操作:

    java -jar .\openapi-generator-cli-5.0.0-beta3.jar generate -i https://localhost:xxxx/api/v1/swagger.json -g csharp
    

    您必须下载 OpenApi Generator Jar。或者,您可以将代码上传到 Web 生成器。但我总是会在本地运行它;你永远不知道你的代码在哪里结束。

    【讨论】:

    • 正确的语言,错误的版本。他询问的是 .NET core(1、2 或 3)或 .NET(5 或 6)。目前,swaggergen 的唯一后端 .NET 生成器是 csharpcsharp-dotnet2csharp 用于 .NET Framework 4.5,csharp-dotnet2 用于 .NET Framework 2.0。
    【解决方案3】:

    您应该通过右键单击您的项目并单击管理 nuget 包来安装“Swashbuckle.AspNetCore.Swagger”nuget 包。

    然后您应该将这些代码添加到您的项目启动位置,例如。 Program.cs

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    
        // Register the Swagger generator, defining one or more Swagger documents
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
        });
    }
    
    public void Configure(IApplicationBuilder app)
    {
        // Enable middleware to serve generated Swagger as a JSON endpoint.
        app.UseSwagger();
    
        app.UseMvc();
    }
    

    【讨论】:

    • 这是一种非常简洁的方式来描述添加 Swagger 需要做什么。对于稍长的版本,我推荐one of my blog posts(我在其中使用一个预先存在的应用程序并为其添加招摇,以及包括 XML 文档)
    • @Metehan 这是针对 Swagger UI 的。我能够生成它。我想要关于 swagger codegen 的详细信息
    • 我为我的误解道歉,但这是一个相当详细的话题。您可以查看上面@JamieTaylor 指出的博客文章。
    • @MetehanSenol 你看过documentation and support forum吗?可能会有一个“入门”指南
    • @MetehanSenol 无论如何谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    相关资源
    最近更新 更多