swagger文档转换为WebApiClient声明式代码
2021-07-03 04:05
标签:sre cti sample ace arp esc ali absolute als Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。其核心是使用json来规范描述RESTful接口,另外有提供UI来查看接口说明,并有一套生成不同语言的客户端调用代码生成器。 自顶向下 使用Swagger编辑器创建Swagger定义,然后使用Swagger代码生成工具生成服务器实现。 自底向上 为已有的REST API创建Swagger定义。一般的,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的生命周期也就无法很好的维护。 WebApiClient是.net平台的一款RESTful声明式的面向切面客户端,其几乎100%实现了swagger定义的规范,WebApiClient.tools.swagger旨在将swagger.json逆向生成符合WebApiClient的声明式c#代码。 使用原生HttpClient,你可能需要20行代码包装调用一个接口;使用WebApiClient,你可能只需要一行代码来定义接口方法;使用WebApiClient + WebApiClient.tools.swagger,你一行代码都不用写。 接口代码 模型代码 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 swagger文档转换为WebApiClient声明式代码 标签:sre cti sample ace arp esc ali absolute als 原文地址:https://www.cnblogs.com/kewei/p/9903851.html1 swagger简介
1.1 对Api提供者
asp.net
里集成swagger的支持,在写好接口代码之后,访问对应的swagger的访问Uri地址,就可以得到swagger.json。例如:http://petstore.swagger.io/v2/swagger.json{
"swagger": "2.0",
"info": {
"tags": null,
"description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
"version": "1.0.0",
"title": "Swagger Petstore",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"email": "apiteam@swagger.io"
},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"host": "petstore.swagger.io",
"basePath": "/v2",
"tags": [
...
1.2 对Api使用者
///
2 WebApiClient.tools简介
2.1 作用
2.2 工作原理
2.3 样例效果
///
public class Pet
{
[AliasAs("id")]
public long? Id { get; set; }
[AliasAs("category")]
public Category Category { get; set; }
[AliasAs("name")]
[Required(AllowEmptyStrings = true)]
public string Name { get; set; }
[AliasAs("photoUrls")]
[Required]
public List
3 相关资源
下一篇:win10激活方法
文章标题:swagger文档转换为WebApiClient声明式代码
文章链接:http://soscw.com/index.php/essay/101095.html