.NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码
前言
上一篇博客中我们可以得知通过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自动生成客户端代码相关推荐
- Web Service 简单实例(java 版本) ,IDE自动生成客户端代码方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.客户端工程 jar 包 : 二.1. 服务端:( new 一个web service pro ...
- swagger mock文档服务器,通过 Swagger 定义自动生成 Mock 数据
我最近的在做的项目是一个前后端分离的项目,前后端由不同的团队分别开发,并且前端的进度经常领先后端.这就意味着,当前端在开发一个新功能时,API 可能还没有准备好.不过,我们会先和后端先商议好 API ...
- quicktype游戏java程序_使用QuickType工具从json自动生成类型声明代码
一.QuickType 工具功能简介 QuickType 是一款可以根据 json 文本生成指定语言(如 Type Script,C++,,Java,C#,Go 等)类型声明代码的工具. 例如我们在写 ...
- Unity编译器 《策划表编表工具》 Excel转Json自动生成解析c#代码
Unity编译器 <策划表编表工具> Excel转Json自动生成解析c#代码 1.表格数据结构解释 2.Excel文件路径 3.C#代码与Json自动生成路径 点击下载依赖Dll程序集 ...
- 解析json自动生成表格
代码业务说明: 将一个含有学生信息的josn字符串中信息解析出来,并将里面的内容添加到表格中. 假设:从java程序后端传递进来一个如下json字符串 "{"total" ...
- sqlaction 更新至 v0.2.1.0,自动生成 JDBC 代码的数据库持久层工具
开发四年只会写业务代码,分布式高并发都不会还做程序员? 0.2.1.0 2019-04-17 calvin * 新增拦截器"@@STA ...
- 骚操作,简单修改源码,让你的postman自动生成POJO代码
作者:鱼东东 cnblogs.com/yudongdong/p/14256060.html 修改postman工具的代码生成工具加入response自动生成POJO代码 image 如上图可以快速把请 ...
- java插件开发_编写一个IDEA插件之:自动生成Java代码
我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...
- Intellij IDEA中使用MyBatis-generator 自动生成MyBatis代码
2019独角兽企业重金招聘Python工程师标准>>> Intellij IDEA中使用MyBatis-generator 自动生成MyBatis代码 MyBatis Generat ...
最新文章
- vue路由history模式,nginx配置
- java8 - 新的时间日期API示例
- 银行IT迎“高景气”时代,宇信科技如何领跑行业?
- C#总结项目《影院售票系统》编写总结二
- Xp下的程序编译成linux,WinXP下打造自己的linux 0.11简易编译环境(原创)
- 《First Order Motion Model for Image Animation》论文解读
- 苹果发布高端头戴式耳机AirPods Max12月15日发售
- windows游戏程序自动备份与更新
- HenCoder文章汇总
- OpenStack柏林峰会主会场侧记:OpenStack立柱、拱券与灵魂
- 拾色器 插件 html,Unity3D 插件开发教程 #3:制作拾色器 ColorPicker
- 使用豆瓣源安装Django
- (转)War3 地图编辑器脚本接口说明
- 校园兼职平台项目总结
- 叫谁修猫呢?叫蓝总|ONES 人物
- 法甲体育bway周末前瞻 欧塞尔对战洛里昂 升班马令人着急
- 推荐几个优秀的echarts 图表网站,让你轻松搞定全部报表
- RAID卡原理与设置
- Vue源码实现之watcher拾遗
- 一个拿到人人网和淘宝网offer的大四学生的Android学习经历
热门文章
- $_GET,$_post与$_REQUEST
- 分布式、微服务必须配个日志管理系统才优秀,Exceptionless走起~~~
- fiddler插件开发
- 如何在 ASP.Net Core 中使用 Autofac
- Dapr微服务应用开发系列4:状态管理构件块
- 5种设置ASP.NET Core应用程序URL的方法
- 在.NET Core 中收集数据的几种方式
- .NET Core AWS S3云存储
- ASP.NET Core 性能优化最佳实践
- 省钱攻略送上!戴尔官网OptiPlex商用台式机到手仅需2279元!速速抢购!