我正在寻找一种从ASP.NET核心Web应用程序(目前使用Visual Studio 2017RC和webpack)自动生成TypesScript客户端代码的方法。是否有任何现有的工具可以从Visual Studio或webpack的构建管道中生成TypeScript客户端?我尝试使用swagger中间件,然后从swagger URL生成客户端,但我不确定中间的swagger生成工具是否适合这项工作。此外,与构建工具的断开也不理想。
ykejflvf1#
aemubtdh2#
您可以将Swashbuckle添加到ASP.NET核心Web应用程序,然后生成Swagger/OpenAPI spec。有了Swagger/OpenAPI规范,您就可以使用Swagger Codegen不仅生成TypeScript API客户端(Node、Angular、Angular2、Fetch),还可以生成C#、Java、JS、Swift等API客户端以及API文档。试用Swagger Codegen最简单的方法是导入规范,然后选择要生成的目标API客户端/服务器,从而使用https://editor.swagger.io。(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月,大约50位Swagger Codegen的顶级贡献者和模板创建者决定分叉Swagger Codegen,以维护一个名为OpenAPI Generator的社区驱动版本。请参考Q&A了解更多信息。
pw9qyyiw3#
另一个选项是NSwag,它可以从ASP.NET(核心)控制器生成Swagger规范,并从该Swagger规范生成TypeScript客户端(用于Angular、AngularJS、Fetch等)。集成非常简单,它支持许多高级特性(继承、命名枚举、代码扩展等)。http://NSwag.org使用NSwagStudio UI,入门非常简单,然后您可以使用NPM包自动执行所有操作(即,在cmd行中运行配置文件)。
我是这个项目的作者之一。
x6h2sr284#
如果需要生成DTO和API客户端,则可选择
如果您只需要DTO,那么我会考虑
有关这些工具的更多信息,请参阅6+ ways to marry C# with TypeScript。
lrpiutwd5#
你也可以看看autorest.typescript客户端代码生成器。它为所有的模型定义提供了良好的接口,精确地定义了只读属性和枚举。它支持一堆custom extensions,这对改善生成的客户端的用户体验很有用。你可以看看一些生成的sample clients。好处:生成的typescript客户端可以在node.js和浏览器中使用。
lmyy7pcs6#
如果您的TypeScript客户端使用的是jQuery或Angular 2+,则在SDLC期间,替代的ASP.NET Web API Client Generators可能比swagger工具链更方便、开销更小。除.NET框架和.NET标准之外,它还支持.NET核心。
bihw5rsg7#
还有一个选项是NTypewriter,您可以完全控制生成的代码,它基本上是打字机的克隆,但它使用Scriban语法作为模板。
7条答案
按热度按时间ykejflvf1#
aemubtdh2#
您可以将Swashbuckle添加到ASP.NET核心Web应用程序,然后生成Swagger/OpenAPI spec。
有了Swagger/OpenAPI规范,您就可以使用Swagger Codegen不仅生成TypeScript API客户端(Node、Angular、Angular2、Fetch),还可以生成C#、Java、JS、Swift等API客户端以及API文档。
试用Swagger Codegen最简单的方法是导入规范,然后选择要生成的目标API客户端/服务器,从而使用https://editor.swagger.io。(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月,大约50位Swagger Codegen的顶级贡献者和模板创建者决定分叉Swagger Codegen,以维护一个名为OpenAPI Generator的社区驱动版本。请参考Q&A了解更多信息。
pw9qyyiw3#
另一个选项是NSwag,它可以从ASP.NET(核心)控制器生成Swagger规范,并从该Swagger规范生成TypeScript客户端(用于Angular、AngularJS、Fetch等)。集成非常简单,它支持许多高级特性(继承、命名枚举、代码扩展等)。
http://NSwag.org
使用NSwagStudio UI,入门非常简单,然后您可以使用NPM包自动执行所有操作(即,在cmd行中运行配置文件)。
我是这个项目的作者之一。
x6h2sr284#
如果需要生成DTO和API客户端,则可选择
如果您只需要DTO,那么我会考虑
有关这些工具的更多信息,请参阅6+ ways to marry C# with TypeScript。
lrpiutwd5#
你也可以看看autorest.typescript客户端代码生成器。它为所有的模型定义提供了良好的接口,精确地定义了只读属性和枚举。它支持一堆custom extensions,这对改善生成的客户端的用户体验很有用。你可以看看一些生成的sample clients。
好处:生成的typescript客户端可以在node.js和浏览器中使用。
lmyy7pcs6#
如果您的TypeScript客户端使用的是jQuery或Angular 2+,则在SDLC期间,替代的ASP.NET Web API Client Generators可能比swagger工具链更方便、开销更小。
除.NET框架和.NET标准之外,它还支持.NET核心。
bihw5rsg7#
还有一个选项是NTypewriter,您可以完全控制生成的代码,它基本上是打字机的克隆,但它使用Scriban语法作为模板。