Swagger OpenAPI Schema 为空时 Example Value 显示 "string" 的原因及解决方案
解决Swagger UI示例值显示"string"的问题
最近在使用ObjectScript生成JSON接口文档时,遇到了一个奇怪的问题:
- 生成的JSON数据是正常的。

- 但Swagger UI的Example Value却显示为
"string",而不是预期的JSON结构。

经过一番排查,我发现问题的根源在于Swagger UI的版本问题,并成功找到了解决方案。这里分享我的思考过程,希望能帮到有类似困扰的朋友。
排查过程
1. 确保生成的JSON数据正确
最开始,我怀疑是代码逻辑有误,导致生成的JSON格式不对。然而,当我把生成的JSON复制到Swagger Editor中时,发现它能正确解析,这说明JSON本身是正确的。

这让我意识到,Swagger UI可能是自动补全了正确的 OpenAPI/Swagger 版本信息,从而正常显示JSON数据。
2. 怀疑Swagger UI版本问题
既然JSON数据是正确的,那问题可能出在Swagger UI的版本上。我回顾了自己的环境,发现Swagger UI的版本是5.11.0。
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="description" content="SwaggerUI"/>
<title></title>
<link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui.css"/>
</head>
于是,我尝试直接修改生成的HTML文件,将Swagger UI的版本从5.11.0升级到5.20.0(即最新版本),然后重新加载页面,结果问题完美解决!
3. 发现官方修复记录
随后,我在Swagger UI的官方Release Notes中找到了相关修复记录。
原来,在5.11.10版本中,Swagger UI修复了这个Bug。

这也进一步验证了我的猜测:问题并非出在我的代码,而是Swagger UI在旧版本中的Bug导致Example Value无法正确显示。
经验总结
- 不要太相信AI工具。我问了gpt4和claude3.5都3.7,一直给我乱改代码,找不到原因。
- 遇到问题,思路要开放。不要一开始就怀疑自己的代码,可能是外部工具或库的问题。
- 检查工具版本。当出现未知问题时,尝试更新到最新版本,或查阅官方Release Notes,可能Bug早已被修复。
- 直接修改生成的HTML。在无法确定问题来源时,直接编辑最终生成的文件,能更直观地测试不同版本的影响。
希望这篇文章能帮助到有类似困扰的朋友,也欢迎大家分享自己的调试经验!
Swagger OpenAPI Schema 为空时 Example Value 显示 "string" 的原因及解决方案的更多相关文章
- asp:Repeater数据源为空时处理方式
当Repeater的数据源为空时,会显示空白,界面不友好,以下方式可以简单处理. <asp:repeater runat="server" id="rplist2& ...
- Swagger/OpenAPI By Swashbuckle在NetCore 3.1中较NetCore 2.2使用的注意事项及入门
方案选择 使用Web API时,了解其各种方法对开发人员来说可能是一项挑战. Swagger也称为OpenAPI(Open Application Programming Interface,开放应用 ...
- 服务器通信REST、gRPC,Swagger/OpenAPI
服务间的通信方式是在采用微服务架构时需要做出一个最基本的决策.默认的选项是通过 HTTP 发送 JSON,也就是所谓的 REST API.我们也是从 REST 开始的,但最近我们决定改用 gRPC. ...
- 服务器通信REST、gRPC,Swagger/OpenAPI,Consul
服务间的通信方式是在采用微服务架构时需要做出一个最基本的决策.默认的选项是通过 HTTP 发送 JSON,也就是所谓的 REST API.我们也是从 REST 开始的,但最近我们决定改用 gRPC. ...
- VB6.0中,DTPicker日期、时间控件不允许为空时,采用文本框与日期、时间控件相互替换赋值(解决方案)
VB6.0中,日期.时间控件不允许为空时,采用文本框与日期.时间控件相互替换赋值,或许是一个不错的选择. 实现效果如下图: 文本框txtStopTime1 时间框DTStopTime1(DTPicke ...
- [WPF]ComboBox.Items为空时,点击不显示下拉列表
ComboBox.Items为空时,点击后会显示空下拉列表: ComboBox点击显示下拉列表,大概原理为: ComboBox存在ToggleButton控件,默认ToggleButton.IsChe ...
- esayUi中datagrid中json串为空时,显示上一次数据的解决方法
function initSearchProject(startDate,finishDate,flag) { $("#finishDate").val(finish ...
- easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字
先上一个Demo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...
- IE9或以上的浏览器flash值为空时,导致domready不触发
在前些时间开发中遇到一个问题当flash值<param name="movie" value=""/>为空时,IE版本>=9不会触发domre ...
- 如何让listview列表为空时显示提示
先在布局文件中声明一个TextView,再设置listview.setEmptyView(TextView).这样当listview中的数据为空时就会列表的位置就会显示textviw中的提示.
随机推荐
- 使用 ayncio 实现 CountDownLatch
class CountDownLatch(object): def __init__(self, count=1): self.count = count self.lock = asyncio.Lo ...
- 开源数字人直播DH_live web整合包免训练使用教程
资源导航首页 项目地址 基于开源项目:DH_live做的web交互系统 主要实现:免训练数字人视频制作和实时语音数字人 可搭配一些直播场控软件的语音 驱动数字人进行直播 整合包下载 「数字人( ...
- 龙哥量化:通达信常用指标写法macd数值太小怎么办macd的数值是0.01怎么放大
1.先放公式 MACD 放大坐标系 1000倍 参数 12.26.9DIF:EMA(CLOSE*1000,12)-EMA(CLOSE*1000,26);DEA:EMA(DIF,9);MACD:(DIF ...
- 这可能是国内Qt/C++界最受欢迎开源项目之一/5.8Kstar/持续迭代更新
一.前言 本项目大概在2020年开始的,大概在2022年重写了一遍,主要是分门别类存放.本项目主要是QWidget编写的一些开源的demo,支持Qt4.Qt5.Qt6,支持任意系统,预计会有100多个 ...
- 从零开始构建一个基于大模型和 RAG 的知识库问答系统
SimpleAbdQA 本项目所使用的大模型为:qwen1.8b 演示中所使用Embedding为:Word2vec 一.介绍 通过从本项目中,你可以得到: 了解基于大模型的本地知识库的运作原理 了解 ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.0版已发布
关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...
- Pytorch Layer层总结
卷积层 nn.Conv1d 对由多个输入平面组成的输入信号应用一维卷积. nn.Conv2d 在由多个输入平面组成的输入信号上应用 2D 卷积. nn.Conv3d 对由多个输入平面组成的输入信号应用 ...
- CDS标准视图:技术对象类别文本 I_TechnicalObjectTypeText
视图名称:技术对象类别文本 I_TechnicalObjectTypeText 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Technical Object T ...
- Hadoop 概述(三)
HDFS shell API HDFS作为大数据的文件系统,可以放置数据文件,列举几个常用的shell脚本命令,用法和linux中的基本类似,不过这个是hadoop里的一套,所以我们要用hadoop ...
- 如何分析jmeter性能测试数据
1.jmeter插件 https://blog.csdn.net/weixin_39430584/article/details/80947093 http://www.doc88.com/p-214 ...