【发布时间】:2018-05-08 08:33:05
【问题描述】:
我计划为现有的 Restful API 创建一个客户端,并选择手动或使用 Autorest 或 Swagger codegen 等工具自动完成。
两种方式的优缺点是什么?
自动生成客户端有什么缺点吗?
【问题讨论】:
标签: c# asp.net-web-api swagger autorest
我计划为现有的 Restful API 创建一个客户端,并选择手动或使用 Autorest 或 Swagger codegen 等工具自动完成。
两种方式的优缺点是什么?
自动生成客户端有什么缺点吗?
【问题讨论】:
标签: c# asp.net-web-api swagger autorest
事实上,我不认为没有理由不使用代码生成器。
我建议您查看生成器的未解决问题(例如https://github.com/swagger-api/swagger-codegen/issues)
一般来说,关于外部代码生成,我会想到一件事。如果您使用 style cop 或任何其他编码风格验证器,则可能是生成的代码与您定义的编码风格规则不匹配。
试一试,你可以节省很多时间。
【讨论】:
由于您想在 C# 中执行此操作,您可能需要查看 Swashbuckle,它包含一个 swagger 生成器和 Swagger-UI。
对于客户端,您可以使用 AutoRest 等工具从 swagger.json 中为客户端生成 C#、Java 等代码。
【讨论】:
如果您正在使用 jQuery 或 Angular 2+ 开发 C# 客户端或 TypeScript 客户端,那么替代 ASP.NET Web API Client Generators 可能比 SDLC 期间的 swagger 工具链更方便,开销更少。
【讨论】:
请尝试OpenAPI Generator。对于 C#,请按照以下说明通过 3 步生成 API 客户端(.NET Core):
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
【讨论】: