[英]Automatically generate TypeScript client code for ASP.NET Core controllers
我正在尋找一種從 ASP.NET Core Web 應用程序(當前使用 Visual Studio 2017RC 和 webpack)自動生成 TypesScript 客戶端代碼的方法。
是否有任何現有工具可以在 Visual Studio 的構建管道中或使用 webpack 生成 TypeScript 客戶端? 我嘗試使用 swagger 中間件,然后從 swagger URL 生成到客戶端,但我不確定中間 swagger 生成是否適合這項工作。 此外,與構建工具的斷開連接也不理想。
NSwag和Swashbuckle/swagger-codegen都很棒。
打字機是另一個很棒的選擇。
所以,這是我將如何做出決定:
需要使用命令行生成完整的客戶端代碼,您可以將其添加為 Swagger Code Gen 的構建或發布步驟
需要使用生成的 Swagger 規范或生成的代碼來添加您的自定義 - 去 NSwag
您可以將Swashbuckle添加到您的 ASP.NET Core web 應用程序,然后生成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 月,大約 50 位 Swagger Codegen 的頂級貢獻者和模板創建者決定分叉 Swagger Codegen 以維護一個名為OpenAPI Generator的社區驅動版本。 請參閱問答以獲取更多信息。
另一種選擇是NSwag,它可以從你的 ASP.NET (Core) 控制器和 TypeScript 客戶端從這個 Swagger 規范(用於 Angular、AngularJS、Fetch 等)生成 Swagger 規范。 集成非常簡單,它支持許多高級功能(繼承、命名枚舉、代碼擴展等)。
使用 NSwagStudio UI 開始非常簡單,然后您可以使用 NPM 包自動執行所有操作(即在 cmd 行中運行配置文件)。
我是該項目的作者之一。
您還可以查看autorest.typescript客戶端代碼生成器。 它為所有模型定義提供了良好的接口,准確定義了只讀屬性和枚舉。 它支持一系列 自定義擴展,可用於改善生成的客戶端的用戶體驗。 您可以查看一些生成的示例客戶端。
獎勵:生成的打字稿客戶端可以在 node.js 和瀏覽器中使用。
如果您需要生成 DTO 和 API 客戶端,那么您的選擇是
如果您只需要 DTO,那么我會考慮
在這篇文章中詳細介紹了這些工具 -將 C# 與 TypeScript 結合的 6 種以上方法。
如果您的 TypeScript 客戶端使用 jQuery 或 Angular 2+,則在 SDLC 期間,替代的ASP.NET Web API 客戶端生成器可能比 swagger 工具鏈更方便,開銷更少。
除了 .NET Framework 和 .NET Standard,它還支持 .NET Core。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.