前言

上一篇博客中我们可以得知通过Swagger插件可以很方便的提供给接口开发者在线调试,但是实际上Swagger附带的功能还有很多,

比如使用NSwag生成客户端调用代码,进一步解放接口开发者。

NSwag

NSwag是一个发布在GitHub上的开源项目,它可以根据Swagger说明页上的swagger.json文件生成C#、TypeScript客户端代码。

NSwag的项目地址:https://github.com/RSuter/NSwag

Nswag提供4种代码生成方法

1、使用 NSwagStudio,这是一款 Windows 桌面应用,用于在 C# 和 TypeScript 中为 API 生成客户端代码。

2、使用 NSwag.CodeGeneration.CSharp 或 NSwag.CodeGeneration.TypeScript NuGet 包在项目中执行代码生成。

3、使用命令行中的 NSwag。

4、使用 NSwag.MSBuild NuGet 包。

这里推荐使用NSwagStudio,可以从GitHub上下载该工具,地址:https://github.com/RSuter/NSwag/wiki/NSwagStudio

下载后开始安装,安装完毕后打开NSwagStudio,如下图,在左侧选择Tab页菜单里选择Documents

如上图框框选中的几点,我们需要留意。其中Swagger Specification URL就是我们WebAPI的swagger.json的在线地址。

如果点击【Create local Copy 】按钮时你的WebAPI未在线则代码生成工具会弹出错误对话框,如下图:

所以采取读取Swagger Specification URL 方式进行生成代码的前提条件是你必须保证swagger.json文件能在线读取!

其次你可以选择RunTime(运行时),这里应该是服务端WebAPI的运行时(毕竟TypeScript是不关心你服务端是.NET Core还是.NET Framework).

因为我的环境是.NET Core2.1,所以这里选择NET Core21。

接下来,点击【Create local Copy】按钮,点击后NSwagStudio会与WebAPI服务端进行交互,成功后会将swagger.json文件格式化到左边的文本编辑器中,如下图:

此时,你可以在右侧的Outputs中勾选你需要输出的文件格式,这里我选择TypeScript和CSharp Client,

这个地方有个C# WebAPI Controller,我有点纳闷,我都有swagger.json文件了绝壁是已经存在webapi了,

没有必要反向再去生成一遍webapi的控制器啦。 不懂,反正只管生成客户端代码就好。

我们勾选好后下面就会出现相应的输出配合页面,如下图:

我们选择CSharp Client页面,该页面左侧分为Setting和Output两个页面,Setting页可以对输出的cs文件进行配置,如命名空间、类名称、输出文件路径等等(很多配置我也不会....)

我们点击【Generate Outputs】后NSwagStudio会根据配置生成客户端操作类,在Output页面即可检查,检查无误后再点击【Generate Files】可将类文件导出到配置的输出目录。

TypeScript亦是如此,同时NSwagStudio也可支持加载DLL反射生成,具体方法可根据官网操作(毕竟可以直接使用json文件在线生成没必要再自己手工选择dll..)

这里截图看SwagerUI页和NSwagStudio生成后的客户端cs文件

生成的客户端C#代码:

代码略,请阅读原文。

结语

不得不赞叹Swagger的强大,它的出现解放了多少程序员啊,后续但凡有客户端码农说不会调用哥的API,哥都可以直接给他代码生成器生成的代码,一个字:爽。

原文地址:https://www.cnblogs.com/hunanzp/p/9297361.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码相关推荐

  1. Web Service 简单实例(java 版本) ,IDE自动生成客户端代码方法

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.客户端工程 jar 包 : 二.1.  服务端:( new 一个web  service pro ...

  2. swagger mock文档服务器,通过 Swagger 定义自动生成 Mock 数据

    我最近的在做的项目是一个前后端分离的项目,前后端由不同的团队分别开发,并且前端的进度经常领先后端.这就意味着,当前端在开发一个新功能时,API 可能还没有准备好.不过,我们会先和后端先商议好 API ...

  3. quicktype游戏java程序_使用QuickType工具从json自动生成类型声明代码

    一.QuickType 工具功能简介 QuickType 是一款可以根据 json 文本生成指定语言(如 Type Script,C++,,Java,C#,Go 等)类型声明代码的工具. 例如我们在写 ...

  4. Unity编译器 《策划表编表工具》 Excel转Json自动生成解析c#代码

    Unity编译器 <策划表编表工具> Excel转Json自动生成解析c#代码 1.表格数据结构解释 2.Excel文件路径 3.C#代码与Json自动生成路径 点击下载依赖Dll程序集 ...

  5. 解析json自动生成表格

    代码业务说明: 将一个含有学生信息的josn字符串中信息解析出来,并将里面的内容添加到表格中. 假设:从java程序后端传递进来一个如下json字符串 "{"total" ...

  6. sqlaction 更新至 v0.2.1.0,自动生成 JDBC 代码的数据库持久层工具

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   0.2.1.0        2019-04-17        calvin             * 新增拦截器"@@STA ...

  7. 骚操作,简单修改源码,让你的postman自动生成POJO代码

    作者:鱼东东 cnblogs.com/yudongdong/p/14256060.html 修改postman工具的代码生成工具加入response自动生成POJO代码 image 如上图可以快速把请 ...

  8. java插件开发_编写一个IDEA插件之:自动生成Java代码

    我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...

  9. Intellij IDEA中使用MyBatis-generator 自动生成MyBatis代码

    2019独角兽企业重金招聘Python工程师标准>>> Intellij IDEA中使用MyBatis-generator 自动生成MyBatis代码 MyBatis Generat ...

最新文章

  1. vue路由history模式,nginx配置
  2. java8 - 新的时间日期API示例
  3. 银行IT迎“高景气”时代,宇信科技如何领跑行业?
  4. C#总结项目《影院售票系统》编写总结二
  5. Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)
  6. 《First Order Motion Model for Image Animation》论文解读
  7. 苹果发布高端头戴式耳机AirPods Max12月15日发售
  8. windows游戏程序自动备份与更新
  9. HenCoder文章汇总
  10. OpenStack柏林峰会主会场侧记:OpenStack立柱、拱券与灵魂
  11. 拾色器 插件 html,Unity3D 插件开发教程 #3:制作拾色器 ColorPicker
  12. 使用豆瓣源安装Django
  13. (转)War3 地图编辑器脚本接口说明
  14. 校园兼职平台项目总结
  15. 叫谁修猫呢?叫蓝总|ONES 人物
  16. 法甲体育bway周末前瞻 欧塞尔对战洛里昂 升班马令人着急
  17. 推荐几个优秀的echarts 图表网站,让你轻松搞定全部报表
  18. RAID卡原理与设置
  19. Vue源码实现之watcher拾遗
  20. 一个拿到人人网和淘宝网offer的大四学生的Android学习经历

热门文章

  1. $_GET,$_post与$_REQUEST
  2. 分布式、微服务必须配个日志管理系统才优秀,Exceptionless走起~~~
  3. fiddler插件开发
  4. 如何在 ASP.Net Core 中使用 Autofac
  5. Dapr微服务应用开发系列4:状态管理构件块
  6. 5种设置ASP.NET Core应用程序URL的方法
  7. 在.NET Core 中收集数据的几种方式
  8. .NET Core AWS S3云存储
  9. ASP.NET Core 性能优化最佳实践
  10. 省钱攻略送上!戴尔官网OptiPlex商用台式机到手仅需2279元!速速抢购!