我计划为现有的 Restful API 创建一个客户端,并选择手动或使用 Autorest 或 Swagger codegen 等工具自动完成。
两种方式的优缺点是什么?
自动生成客户端有什么缺点吗?
4 回答
事实上,我认为没有理由不使用代码生成器。
我建议您查看生成器的未解决问题(例如https://github.com/swagger-api/swagger-codegen/issues)
一般来说,关于外部代码生成,我想到了一件事。如果您使用样式警察或任何其他编码样式验证器,则生成的代码可能与您定义的编码样式规则不匹配。
试一试,你可以节省很多时间。
由于您想在 C# 中执行此操作,您可能需要查看 Swashbuckle,它包含一个 swagger 生成器和 Swagger-UI。
对于客户端,您可以使用 AutoRest 等工具从 swagger.json 中为客户端生成 C#、Java 等代码。
请尝试使用 OpenAPI 生成器。对于 C#,请按照以下说明通过 3 个步骤生成 API 客户端(.NET Core):
- 下载 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 )
- 将 JAR 重命名为“openapi-generator-cli.jar”
- 运行以下命令为 Petstore API 生成 C# .NET Core API 客户端 ( https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/宠物商店.yaml):
Mac/Linux:
$ java -jar openapi-generator-cli.jar 生成 -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 生成 -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
如果您正在使用 jQuery 或 Angular 2+ 开发 C# 客户端或 TypeScript 客户端,那么替代ASP.NET Web API 客户端生成器可能比 SDLC 期间的 swagger 工具链更方便,开销更少。