首页 > 其他分享 >.netcore获得swagger对象信息(解析swagger的json文件)

.netcore获得swagger对象信息(解析swagger的json文件)

时间:2024-03-25 16:26:46浏览次数:29  
标签:Description netcore Value json var operation swagger parameter

以下代码未经测试,谨慎使用!!!

 

var reader = new Microsoft.OpenApi.Readers.OpenApiStringReader();
var doc = reader.Read(System.IO.File.ReadAllText(_webHostEnvironment.WebRootPath + "/a.json"), out var diagnostic);
var doc1 = _swaggerGenerator.GetSwagger(version); //1. 根据指定版本获取指定版本的json对象。

 

foreach (var item in openApiDocument.Paths)
{

 

foreach (var operation in item.Value.Operations)
{
var methodName = operation.Key.ToString();
var tag = string.Join(Environment.NewLine, operation.Value.Tags.Select(c => c.Name.RemoveMarkdown()));
var summary = operation.Value.Summary.RemoveMarkdown();
var description = operation.Value.Description.RemoveMarkdown();

 

/*返回值*/
var res = operation.Value.Responses; 
var res1 = operation.Value.Responses?["200"]?.Content["application/json"]?.Schema?.Properties["Rows"]?.Items?.Reference?.Id;  //返回对象的类名

 

var resClassName = operation.Value.Responses?["200"]?.Content["application/json"]?.Schema?.Properties["Rows"]?.Items?.Reference?.Id;
var has = openApiDocument.Components.Schemas.ContainsKey(resClassName);
if (has)
{
var resCls = openApiDocument.Components.Schemas[resClassName];
var des = resCls.Description;
foreach (var pro in resCls.Properties)
{
var str = $"{pro.Key} {pro.Value.Type} {pro.Value.Description}";
}
}

 

if (operation.Value.RequestBody != null)
{
var requestBody = $"描述:{operation.Value.RequestBody.Description + Environment.NewLine}";
requestBody += $"类型:{string.Join(',', operation.Value.RequestBody.Content.Keys) + Environment.NewLine}";
reportModel.RequestType = requestBody;
}
if (operation.Value.Parameters?.Count > 0)
{
reportModel.ParameterItems.AddRange(
operation.Value.Parameters.Select(parameter => new ParametersItem
{
ParaName = parameter.Name,
ParaType = parameter.In?.ToString() ?? "",
ParaRequired = parameter.Required,
ParaDescription = parameter.Description
})
);
var parameters = JsonSerializer.Serialize(reportModel.ParameterItems, jsonOptions);
}
}

 

}

 

https://github.com/ricoisme/swagger2document

标签:Description,netcore,Value,json,var,operation,swagger,parameter
From: https://www.cnblogs.com/xuejianxiyang/p/18094658

相关文章

  • Ajax 发送json格式数据以及发送文件(FormData)和自带的序列化组件: serializers
    前后端传输数据的编码格式(contentType)get请求数据就是直接放在url?后面的url?usernmae=junjie&password=123...可以向后端发送post请求的方式form请求ajax请求前后端传输数据的编码格式urlencodedformdatajson研究form表单:默认的数据编码格式是(urlencod......
  • python + playwright 非无痕模式打开网页下载json数据
    使用python从网页下载资料,生成一些图表使用,因为json数据需要SSO验证,不然没有Token是无权限获取的,所以使用playwright无痕模式打开不行,要使用非无痕模式。从网页报表上把json数据转成Excel保存代码没有多华丽,只是满足了那时候需要這一操作的需求。点击查看代码fromplaywrig......
  • Ajax、JSON、响应式设计和Node.js
    Ajax、JSON、响应式设计和Node.js股票搜索(AJAX/JON/HTML5/Bootstrap/Angular/Node.js/CloudExercise)1.目标●熟悉AJAX和JSON技术●在客户端使用HTML5、Bootstrap和Angular的组合●在服务器端使用Node.js●熟悉Bootstrap,使用响应式设计增强用户体验●亲身体验云服务托......
  • Json扩展方法
    命名空间:点击查看代码usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;usingSystem;usingSystem.IO;usingSystem.Linq;类:点击查看代码///<summary>///Json扩展方法///</summary>publicstaticclassJsonExtends{privates......
  • Python常用模块(random随机模块&json序列化模块)
    1.random随机模块返回两数之间的随机数,不包括尾数:random.randrange()importrandomprint(random.randrange(1,10))#3返回两数之间的随机数,包括尾数:random.randint()importrandomprint(random.randint(1,10))#返回1-10之间的一个随机数,包括10#7随机选取0到100间......
  • Java中使用fastJson
     FastJson简介Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务、API接口、数据交换等多个场景。FastJson的作用主要作用是用于将Java对象转换为JSON格式,或将JSON字符串转换为Java对象。它可以操作任何Java对象。主要特性有:.a.高性能:采......
  • http tcp udp json 接收测试
    创建新的Node.js项目:在您的项目文件夹中打开命令行或终端,并运行以下命令来初始化一个新的Node.js项目:npminit-y安装依赖库:执行以下命令来安装 dgram 模块,它是Node.js提供的用于处理UDP数据的模块:npminstalldgram启动UDP服务器:在命令行或终端中,进入项目文......
  • 2020-3-1-jsonp原理
    原理ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,将数据作为参数,在src中进行了调用,这样实现了跨域。实现代码1服务端//nodejsvarhttp=require......
  • Win7下做一个Kubernetes的NetCore项目Demo
    建立K8s集群Demo,将一个建立好的AspNetCore项目加入到集群中。一准备工作IDEVS2017Win7下需要dockertools(打包Dockerimage)一个VM,笔者用的是VMwareWorkstationPro15(破解版)注册一个https://hub.docker.com/账户安装一个WinSCP用来windows和linux传送文件,......
  • SpringBoot3.x与SpringDoc OpenApi之Swagger接口排序
    直接使用Swagger之后,发现所有的Controller接口菜单都是无序的先看一下效果 就是利用了一下SpringDoc提供的接口做了一下自定义排序1.在Controller上加上注解@Tag(name="MenuController",description="1-菜单管理")这里需要注意description属性,在下面的代码里......