swagger文档转换为WebApiClient声明式代码
1 swagger简介
Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。其核心是使用json来规范描述RESTful接口,另外有提供UI来查看接口说明,并有一套生成不同语言的客户端调用代码生成器。
1.1 对Api提供者
自顶向下
使用Swagger编辑器创建Swagger定义,然后使用Swagger代码生成工具生成服务器实现。
自底向上
为已有的REST API创建Swagger定义。一般的,Api提供者都会选择这种方式,比如在asp.net
里集成swagger的支持,在写好接口代码之后,访问对应的swagger的访问Uri地址,就可以得到swagger.json。例如:http://petstore.swagger.io/v2/swagger.json
1.2 对Api使用者
使用swagger UI
一些提供者的站点会提供swagger ui来查看其swagger.json,例如:http://petstore.swagger.io/ 有了这些UI,自己手工编写客户端调用代码也非常简单了。
使用Swagger Codegen
可以Swagger Codegen的将swagger.json逆向生成你需要的客户端调用接口代码,本质上是使用了代码模板结合swagger.json描述来生成代码。在.net里,有一个Nswag项目,可以将swagger.json生成使用HttpClient来请求接口的c#代码。但是这些代码的质量也比较差,比如以下代码的HttpClient的生命周期也就无法很好的维护。
2 WebApiClient.tools简介
WebApiClient是.net平台的一款RESTful声明式的面向切面客户端,其几乎100%实现了swagger定义的规范,WebApiClient.tools.swagger旨在将swagger.json逆向生成符合WebApiClient的声明式c#代码。
2.1 作用
使用原生HttpClient,你可能需要20行代码包装调用一个接口;使用WebApiClient,你可能只需要一行代码来定义接口方法;使用WebApiClient + WebApiClient.tools.swagger,你一行代码都不用写。
2.2 工作原理
使用NSwag解析json得到SwaggerDocument
使用RazorEngine将SwaggerDocument传入cshtml模板编译得到html
使用AngleSharp将html的文本代码提取,得到WebApiClient的声明式代码
代码美化,输出到本地文件
2.3 样例效果
接口代码
模型代码
3 相关资源
WebApiClient
github: https://github.com/dotnetcore/WebApiClient
WebApiClient.tools
github: https://github.com/xljiulang/WebApiClient.Tools
NSwag
github: https://github.com/RSuter/NSwag
RazorEngine
github: https://github.com/Antaris/RazorEngine
相关文章:
使用WebApiClient请求和管理Restful Api
net的retrofit--WebApiClient库
.net的retrofit--WebApiClient库深入篇
.net的retrofit--WebApiClient底层篇
WebApiClient百度地图服务接口实践
WebApiClient的接口输入验证
WebApiClient的JsonPatch局部更新
声明式RESTful客户端在asp.net core中的应用
原文地址:https://www.cnblogs.com/kewei/p/9786319.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
swagger文档转换为WebApiClient声明式代码相关推荐
- Word处理控件Aspose.Words功能演示:使用 C# 将 Word 文档转换为 HTML
在各种情况下,您需要在 Web 或桌面应用程序中显示 Word 文档的内容.在这种情况下,合适的选项之一是将 Word 文档转换为HTML.为了在 .NET 应用程序中实现这一点,本文介绍了如何使用 ...
- 使用 Swagger 文档化和定义 RESTful API
大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API--REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...
- Django Swagger文档库drf-spectacular
在使用DRF的时候,通常的文档有:默认文档RestFrameWork.CoreAPI.Swagger,Swagger是最流行的API文档库,在绝大多数服务端开发中都有用到,之前我们使用了CoreAPI ...
- 仿百度文库方案[openoffice.org 3+swftools+flexpaper](三) 之 使用JODConverter将office文档转换为pdf...
第三步,使用JODConverter将office文档转换为pdf JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用 OpenOffice ...
- 把office文档转换为html过程中的一些坑
之前和我们项目的团队一起酝酿了一个项目,公司的业务文档技术文档比较多,但都比较分散,虽然通过FTP或其他方式聚合起来了,但感觉还是不够方便. 另外公司每次都来新员工,新员工都需要一些培训,比较耗时,比 ...
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑...
将Doc或者Docx文档处理成html的代码逻辑 下面是maven的配置代码: <!-- 文档处理所需的jar的依赖 --><dependency><groupId> ...
- java openoffice 打印_java调用openoffice将office系列文档转换为PDF的示例方法
前导: 发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. openoffice既有windows版本也 ...
- 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
将Doc或者Docx文档处理成html的代码逻辑 下面是maven的配置代码: <!-- 文档处理所需的jar的依赖 --><dependency><groupId> ...
- windows/linux服务器上java使用openoffice将word文档转换为PDF(亲测可用)
一. 前言 1. 开发过程中经常会使用java将office系列文档转换为PDF, 一般都使用微软提供的openoffice+jodconverter 实现转换文档. 2. openoffice既有w ...
最新文章
- Android APK反编译得到Java源代码或资源文件
- 40个Java多线程问题详解复习
- kaggle數據集下載到colab上并且解压
- Python 两大环境管理神器:pyenv 和 virtualenv
- linux取设备分辨率,linux 获取系统屏幕分辨率
- Hystrix原理讲解
- 高通linux系统交叉编译,【Linux】第三章 移植开源库
- Tarjan-有向图
- Python requests库中文乱码问题汇总(编码)
- 计算机操作系统有哪几个管理功能,操作系统管理功能有哪几种
- 【NISP一级】1.4 信息安全管理
- word2vec教程
- PyTorch的自动求导机制详细解析,PyTorch的核心魔法
- 准备嵌入式Linux开发环境
- 跨模态行人重识别:Cross-Modality Person Re-Identification viaModality-Aware CollaborativeEnsemble Learning学习笔记
- 通达信版弘历软件指标_通达信弘历指标公式
- csu 1525: Algebraic Teamwork
- pycharm导入jieba包_一份超级完整实用的PyCharm图解教程,赶紧收藏起来
- 影响域名解析生效的原因有哪些?
- python 123 io网站答题如果最小化会有提示吗_爬虫进阶教程:百万英雄答题辅助系统...