SpringCloud + React19 集成Scalar的API文档

发布时间:2026/10/3 1:56:40

SpringCloud + React19 集成Scalar的API文档
你好呀我的老朋友我是老寇跟我一起学习集成Scalr API文档众所周知Knife4j是一个集Swagger2和OpenAPI3为一体的增强解决方案但是社区不太活跃再加上SpringBoot4发版迫切需要一个集成OpenAPI 3.0和OpenAPI 3.1规范的增强解决方案所以才集成ScalarReact集成ScalarReact集成Scalar文档地址安装依赖pnpminstallscalar/api-reference-react配置详情配置项类型是否必填说明示例sourcesArray是OpenAPI 文档源列表一个配置可以配置多个 API 文档。[{ title: 认证授权, url: /api/v3/api-docs }]sources.titleString是API 文档名称在 Scalar 左侧导航中显示。认证授权sources.urlString是OpenAPISwaggerJSON 文档地址。/api-proxy/auth/api/v3/api-docssources.defaultBoolean否是否默认选中该文档。trueproxyUrlString否Scalar 的代理地址用于 Try It、鉴权等请求代理。/api-proxy/auth/scalarexpandAllResponsesBoolean否是否默认展开所有 Response。truehideClientButtonBoolean否是否隐藏 Generate Client生成客户端按钮。trueorderRequiredPropertiesFirstBoolean否Model 属性中是否将必填字段排在前面。trueexpandAllModelSectionsBoolean否是否默认展开所有 Model 定义。false具体代码apiDoc.tsximport{ApiReferenceReact}fromscalar/api-reference-reactimportscalar/api-reference-react/style.cssimport{useIntl}from/exports;exportdefault(){constintluseIntl();constt(id:string,values?:Recordstring,any)intl.formatMessage({id},values);return(ApiReferenceReact configuration{[{sources:[{title:认证授权,url:/api-proxy/auth/api/v3/api-docs,default:true,}],proxyUrl:/api-proxy/auth/scalar,expandAllResponses:true,hideClientButton:true,orderRequiredPropertiesFirst:true,expandAllModelSections:false,},{sources:[{title:后台管理,url:/api-proxy/admin/api/v3/api-docs,default:true,}],proxyUrl:/api-proxy/admin/scalar,expandAllResponses:true,hideClientButton:true,orderRequiredPropertiesFirst:true,expandAllModelSections:false,}]}/);};Spring Cloud Gateway集成Scalar由于代理地址为/**/scalar因此需要在网关层将/**/scalar覆盖为scalar_url依赖dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-gateway-server-webflux/artifactId /dependency具体代码ScalarGatewayFilterFactorySlf4jComponentpublicclassScalarGatewayFilterFactoryextendsAbstractGatewayFilterFactoryScalarGatewayFilterFactory.NonNullConfigimplementsOrdered{publicScalarGatewayFilterFactory(){super(Config.class);}OverridepublicintgetOrder(){returnOrdered.LOWEST_PRECEDENCE-2000;}NonNullOverridepublicGatewayFilterapply(Configconfig){return(exchange,chain)-{ServerHttpRequestrequestexchange.getRequest();// 获取uriStringrequestURLReactiveRequestUtils.getRequestURL(request);// scalar重写地址if(ReactiveRequestUtils.pathMatcher(/**/scalar,requestURL)){StringscalarUrlReactiveRequestUtils.getParamValue(request,scalar_url);URIuriURI.create(scalarUrl);returnchain.filter(exchange.mutate().request(request.mutate().uri(uri).path(uri.getPath()).build()).build());}returnchain.filter(exchange);};}publicstaticclassConfig{}}application.ymlspring:cloud:gateway:server:webflux:enabled:trueroutes:-id:laokou-auth-scalaruri:lb://laokou-authpredicates:-Path/api-gateway/auth/scalarfilters:-name:Scalar-id:laokou-admin-scalaruri:lb://laokou-adminpredicates:-Path/api-gateway/admin/scalarfilters:-name:ScalarSpringBoot集成Scalar以laokou-auth为例安装依赖dependencygroupIdorg.springdoc/groupIdartifactIdspringdoc-openapi-starter-webmvc-scalar/artifactId/dependency具体代码OpenApiDocConfigConfigurationpublicclassOpenApiDocConfig{BeanOpenAPIopenApi(){returnnewOpenAPI().info(newInfo().title(API文档).description(API文档).version(1.0.0).contact(newContact().name(laokou).url(https://github.com/KouShenhai).email(2413176044qq.com)).license(newLicense().name(Apache 2.0).url(https://www.apache.org/licenses/LICENSE-2.0.html))).externalDocs(newExternalDocumentation().description(老寇IoT云平台).url(https://github.com/KouShenhai)).addSecurityItem(newSecurityRequirement().addList(HttpHeaders.AUTHORIZATION)).components(newComponents().addSecuritySchemes(HttpHeaders.AUTHORIZATION,newSecurityScheme().name(HttpHeaders.AUTHORIZATION).type(SecurityScheme.Type.OAUTH2).in(SecurityScheme.In.HEADER).scheme(Bearer).bearerFormat(JWT)));}}application.ymlscalar:enabled:truespringdoc:swagger-ui:enabled:falseapi-docs:enabled:truepath:/v3/api-docsversion:openapi_3_1我是老寇我们下次再见啦

相关新闻

别给 Electron 鸿蒙 PC 做应用内更新了——autoUpdater 废了,三套方案全翻车,我们最终用了最笨的办法

别给 Electron 鸿蒙 PC 做应用内更新了——autoUpdater 废了,三套方案全翻车,我们最终用了最笨的办法

2026/9/27 5:04:21

先说结论:在鸿蒙 PC 上给 Electron 应用做"应用内自动更新",这事儿目前基本不可能。别折腾了。 我们团队花了两周试了三套方案,每一套都信誓旦旦觉得"这次肯定行",结果每一套都白给。最终我们用了那个看起来最…

计算机大数据毕设实战-基于 Django 框架的租车用户行为可视化系统的设计与实现 基于大数据技术的租车订单数据分析系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机大数据毕设实战-基于 Django 框架的租车用户行为可视化系统的设计与实现 基于大数据技术的租车订单数据分析系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

2026/10/3 1:54:59

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026年实测10款降AI率平台推荐:免费与付费全对比,毕业论文淡化AIGC痕迹必看

2026年实测10款降AI率平台推荐:免费与付费全对比,毕业论文淡化AIGC痕迹必看

2026/10/1 19:09:34

一、10 款降 AI 率工具核心测评 1. 千笔AI(毕业论文专用神器) 推荐指数:★★★★★ 核心定位:专注中文论文降 AI 率、降重一体解决方案,以"无口语化、字数稳定、格式保全、性价比极高"为核心优势&#xff…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/29 22:00:59

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/10/2 14:34:27

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/30 20:35:38

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/10/2 4:43:07

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/10/2 4:42:51

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/30 8:20:32

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…