如何在Docusaurus中通过OpenApi文件移除Schema的OPTIONAL标识
移除Docusaurus OpenAPI Schema中的OPTIONAL标识
你的项目使用docusaurus-preset-openapi@0.7.3,要去掉Schema区域里的OPTIONAL字样,有几个实用方法:
方法1:通过Swizzle自定义组件(推荐)
利用Docusaurus的Swizzle功能覆盖预设的Schema展示组件:
- 执行命令:
选择npm run swizzle docusaurus-preset-openapi SchemaItemwrap模式(保留原组件逻辑,方便后续升级)或者eject(完全自定义)。 - 打开生成的
src/theme/SchemaItem/index.js文件,找到渲染OPTIONAL的代码段,比如类似这样的:
直接删掉这段代码就行。{!required && <span className="optional">OPTIONAL</span>} - 重启
npm start,刷新页面就能看到效果。
方法2:用CSS直接隐藏
不想改组件代码的话,全局加CSS隐藏:
- 打开项目的
src/css/custom.css,添加以下样式:
要是类名不对,用浏览器开发者工具查一下OPTIONAL元素的实际类名,调整选择器就行。/* 隐藏Schema中的OPTIONAL标签 */ .openapi-doc .optional { display: none; } - 重启服务后,OPTIONAL就会被隐藏。
方法3:修改OpenAPI文件(不推荐)
如果硬要从数据源层面改,把OpenAPI里所有可选字段加到对应required数组里,但这样会把可选字段改成必填,改变API语义,只适合特殊场景。
内容的提问来源于stack exchange,提问作者svn
相关产品推荐
相关产品推荐

