我正在寻找一种从ASP.NET核心Web应用程序(目前使用Visual Studio 2017RC和webpack)自动生成TypesScript客户端代码的方法。
是否有任何现有工具可以在visual studio或webpack的构建管道中生成TypeScript客户端?我试图使用swagger中间件,然后从swagger URL生成到客户端,但我不确定中间的swagger生成是否适合这项工作。此外,与构建工具的脱节也不理想。
答案 0 :(得分:16)
NSwag和Swashbuckle/swagger-codegen都很棒。
Typewriter是另一个很棒的选择。
所以,我将采取以下决定:
需要使用命令行生成完整的客户端代码,您可以将其作为构建或发布步骤添加到Swagger Code Gen
需要使用生成的Swagger规范或生成代码来添加自定义项 - 转到NSwag
答案 1 :(得分:11)
您可以将Swashbuckle添加到ASP.NET Core webapp,然后生成Swagger/OpenAPI spec。
使用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的社区驱动版本。有关详细信息,请参阅Q&A。
答案 2 :(得分:7)
另一个选项是 NSwag,它可以从这个Swagger规范(对于Angular,AngularJS,Fetch等)从ASP.NET(Core)控制器和TypeScript客户端生成Swagger规范。集成非常简单,它支持许多高级功能(继承,命名枚举,代码扩展等)。
使用NSwagStudio UI非常简单,然后您可以使用NPM包自动执行所有操作(即在cmd行中运行配置文件)。
我是该项目的作者之一。
答案 3 :(得分:2)
您还可以查看autorest.typescript客户端代码生成器。它为所有模型定义提供了良好的接口,准确定义了只读属性和枚举。它支持一堆custom extensions,可用于改善生成的客户端的用户体验。您可以查看一些生成的sample clients。
奖励:生成的typescript客户端在node.js和浏览器中工作。
答案 4 :(得分:1)
如果您需要生成DTO和API客户端,则可以选择
如果您仅需要DTO,那么我会考虑
本文中有关这些工具的更多信息-6+ ways to marry C# with TypeScript。
答案 5 :(得分:0)
如果您的TypeScript客户端使用jQuery或Angular 2+,与SDLC期间的灵活工具链相比,替代ASP.NET Web API Client Generators可能更方便,开销也较小。
除了.NET Framework和.NET Standard之外,它还支持.NET Core。