自动为ASP.NET Core控制器生成TypeScript客户端代码

Fio*_*onn 18 asp.net-web-api swagger typescript asp.net-core

我正在寻找一种从ASP.NET核心Web应用程序(目前使用Visual Studio 2017RC和webpack)自动生成TypesScript客户端代码的方法.

是否有任何现有工具可以在visual studio或webpack的构建管道中生成TypeScript客户端?我试图使用swagger中间件,然后从swagger URL生成到客户端,但我不确定中间的swagger生成是否适合这项工作.此外,与构建工具的断开连接并不理想.

小智 17

  1. 无论NSwagSwashbuckle /招摇,代码生成是真棒.

    1. 打字机是另一个很棒的选择.

    2. 那么,我将采取以下决定:

      • 需要根据C#模型生成TypeScript模型,转到TypeWriter
      • 需要使用命令行生成完整的客户端代码,您可以将其作为构建或发布步骤添加到Swagger Code Gen中

      • 需要使用生成的Swagger Spec或Generated Code来添加自定义 - 去NSwag

      • 需要在Swagger UI中显示客户端内联代码片段,使用SwaggerUI-snippets


Wil*_*eng 13

您可以将Swashbuckle添加到ASP.NET Core webapp,然后生成Swagger/OpenAPI规范.

使用Swagger/OpenAPI规范,您可以使用Swagger Codegen不仅生成TypeScript API客户端(Node,Angular,Angular2,Fetch),还可以生成C#,Java,JS,Swift等API客户端以及API文档.

尝试Swagger Codegen的最简单方法是通过导入规范来使用https://editor.swagger.io,然后选择要生成的目标API客户端/服务器.(https://editor.swagger.io利用https://generator.swagger.io生成代码,generator.swagger.io由Swagger Codegen提供支持)

Swagger Codegen还可以在C#Nancyfx或ASP.NET核心中生成服务器存根,因此您可以考虑使用https://editor.swagger.io编写规范,然后生成API客户端和服务器存根,从而遵循契约优先方法.

更新:2018年5月,Swagger Codegen的大约50名顶级贡献者和模板创建者决定使用Swagger Codegen来维护一个名为OpenAPI Generator的社区驱动版本.有关更多信息,请参阅问答.


Ric*_*ter 8

另一个选项是NSwag,它可以从这个Swagger规范(适用于Angular,AngularJS,Fetch等)的ASP.NET(Core)控制器和TypeScript客户端生成Swagger规范.集成非常简单,它支持许多高级功能(继承,命名枚举,代码扩展等).

http://NSwag.org

使用NSwagStudio UI,开始非常简单,然后您可以使用NPM包自动执行所有操作(即在cmd行中运行配置文件).

在此输入图像描述

我是该项目的作者之一.


Ale*_*aus 7

如果您需要生成 DTO 和 API 客户端,那么您的选择是

  • 国家斯瓦格。该工作最受欢迎的工具。但它会在一个文件中生成所有内容,这使得维护/调试变得困难。
  • Swagger Codegen或其具有更多功能的分支OpenAPI Generator。基于 Java 的选项生成单独的文件,但自定义功能有限。
  • 自动休息。用于将 API 客户端打包到 npm 包中的 npm 解决方案。
  • WebApiClientGen。作者在下面的线程中提到了一个解决方案。
  • 打字机。VS 扩展,您可以在其中制作自己的实现。

如果您只需要 DTO,那么我会考虑

有关这些工具的更多信息,请参阅这篇文章 -将 C# 与 TypeScript 结合的 6 种以上方法