自动与手动WebApi客户端生成

时间:2017-11-24 10:34:58

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

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

4 个答案:

答案 0 :(得分:2)

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

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

一般来说,有一件事情出现在外部代码生成中。如果您使用样式警察或任何其他编码样式验证器,则生成的代码可能与您定义的编码样式规则不匹配。

试一试,节省了很多时间。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

请尝试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生成-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 /

Windows:

$ 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