简介
nswag 是一个 .NET Core 和 TypeScript/JavaScript 的代码生成器,可以非常简单的实现使用 C# Web API 动态生成 Swagger 规范文档,也可通过其命令行接口或者记事本文件(.nswag)的形式,生成客户端代码,例如 Angular 和 React。
安装
可以通过 npm 命令进行安装:
--- ------- ----- --
安装完成后,让我们来看看如何使用它。
生成客户端代码
我们可以使用 nswag 命令行来生成客户端代码:
----- --------------------------- --------------------------------- --------------------------
其中,MyApiDefinition.json
是 API 定义 Swagger 文档,TypeScriptAngular2
是想要生成的客户端代码的类型,MyGeneratedCode.ts
是生成的客户端代码文件名。
这里我们以 Swagger 官方提供的在线演示用户 RESTful API为例,来生成 Angular 2 所需的客户端代码。
首先,我们需要将 Swagger 文档下载下来,使用命令行:
---- ------------------------------------------- - ------------
然后,我们就可以使用 nswag 命令来生成 Angular 2 的客户端代码:
----- ------------ -- ------- -- -------------------------
在上面的命令中:
-t angular
:告诉 nswag 生成 Angular 2 的代码。-o generated/MyApiService.ts
:告诉 nswag 将生成的代码保存到 generated/MyApiService.ts 文件中。
现在,我们已经获得了一个名为 MyApiService.ts 的文件,里面包含了 API 的所有操作。
对 Angular 应用进行配置
让我们进一步完善我们的项目。首先,我们需要安装 Angular CLI,以便我们可以使用 ng 命令快速地构建我们的应用程序:
--- ------- -- ------------ -- --- ------ -- ------
然后,我们需要将刚才生成的 MyApiService.ts 文件复制到我们的项目中:
----- --------------- ---- ---------------------------- ---------------
在这里,我们将服务放到一个单独的目录 src/app/swagger 中。
最后,我们需要在 Angular 应用程序中注入服务。在 app.module.ts 文件中添加:
------ - ------------ - ---- ------------------------- ------ - -------- - ---- ---------------- - ----------- -------- - - -- ------------- - - -- ---------- - ------------ -- ---------- -------------- -- ------ ----- --------- - -
现在,我们已经可以通过 MyApiService 使用 API,以下是一个示例组件:
------ - --------- - ---- ---------------- ------ - ------------ - ---- -------------------------- ------------ --------- ----------- ------------ ----------------------- ---------- ----------------------- -- ------ ----- ------------ - ------------------- ---- ------------- - - ---------- - ------------------------------------------- ----- - ----------------------- --- - -
现在我们可以使用 ng serve 来启动我们的应用程序并尝试使用 API。
总结:使用 nswag 命令行非常容易地生成客户端代码。我们在这里使用了官方演示 API 来生成 Angular 2 的客户端代码,然后注入到我们的 Angular 应用中。
结语
愿本文对各位前端爱好者有所启发,让您能够理解 nswag 的基本用法和如何生成客户端代码,以及如何将它与 Angular 应用程序一起使用。如有问题或意见,请在评论区留言,我们会尽快回复您。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/80099