_
这是之前文章 <在asp.net core 下定义统一的入参和出参格式>的高阶应用篇,由于增加了框架级别的入参和出参定义,导致swagger无法识别外部的定义,仅仅识别为控制器方法的定义。如果追根溯源,这个跟swagger也没太大的关系,应该是asp提供的ApiExplorer的问题,毕竟是静态反射,你想让他支持动态的过滤,这的确是勉为其难了。
swagger的结构
我使用的环境是asp.net core 3.1,swagger的包是Swashbuckle.AspNetCore 5.0.0。如果仅仅是产生一个api文档,为什么要关注这个Swagger的包,甚至结构呢,你说是吧!我当时就有股放下的冲动,给前端介绍下,让他们自己理解去… …
作为一个接近产品的项目,我觉得有必要深入的理解下swagger的结构,完成这个转换就非常完美了。
说起swagger的结构,其实不如说是OpenAPI的结构,这个规范应该起源自swagger,微软定义了一套实现。
OPEN API 规范
记住微软的github地址: OpenApi
这里简单过下规范的描述, 目前标准为3.02,
OpenApi的根文档对象如下:
# OpenAPI 规范版本号
openapi: 3.0.2