【问题标题】:Automatic vs manual WebApi client generation自动与手动 WebApi 客户端生成
【发布时间】:2018-05-08 08:33:05
【问题描述】:

我计划为现有的 Restful API 创建一个客户端,并选择手动或使用 Autorest 或 Swagger codegen 等工具自动完成。
两种方式的优缺点是什么?
自动生成客户端有什么缺点吗?

【问题讨论】:

    标签: c# asp.net-web-api swagger autorest


    【解决方案1】:

    事实上,我不认为没有理由不使用代码生成器。

    我建议您查看生成器的未解决问题(例如https://github.com/swagger-api/swagger-codegen/issues

    一般来说,关于外部代码生成,我会想到一件事。如果您使用 style cop 或任何其他编码风格验证器,则可能是生成的代码与您定义的编码风格规则不匹配。

    试一试,你可以节省很多时间。

    【讨论】:

    【解决方案2】:

    由于您想在 C# 中执行此操作,您可能需要查看 Swashbuckle,它包含一个 swagger 生成器和 Swagger-UI。

    对于客户端,您可以使用 AutoRest 等工具从 swagger.json 中为客户端生成 C#、Java 等代码。

    【讨论】:

      【解决方案3】:

      如果您正在使用 jQuery 或 Angular 2+ 开发 C# 客户端或 TypeScript 客户端,那么替代 ASP.NET Web API Client Generators 可能比 SDLC 期间的 swagger 工具链更方便,开销更少。

      【讨论】:

        【解决方案4】:

        请尝试OpenAPI Generator。对于 C#,请按照以下说明通过 3 步生成 API 客户端(.NET Core):

        1. 下载 Java JAR (https://oss.sonatype.org/content/repositories/snapshots/org/openapitools/openapi-generator-cli/4.1.0-SNAPSHOT/openapi-generator-cli-4.1.0-20190729.024538-72.jar)
        2. 将 JAR 重命名为“openapi-generator-cli.jar”
        3. 运行以下命令为 Petstore API (https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml) 生成 C# .NET Core API 客户端:

        Mac/Linux:

        $ java -jar openapi-generator-cli.jar generate -g csharp-netcore -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o /var/tmp/csharp-netcore/

        窗户:

        $ java -jar openapi-generator-cli.jar generate -g csharp-netcore -i https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml -o C:\tmp\csharp-netcore

        【讨论】:

          猜你喜欢
          • 2018-06-14
          • 2013-02-27
          • 2018-02-25
          • 1970-01-01
          • 2019-06-11
          • 2015-09-05
          • 2013-07-27
          • 1970-01-01
          • 2015-06-03
          相关资源
          最近更新 更多