SpringCloud + React19 集成Scalar的API文档

发布时间:2026/7/8 16:08:49

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/7/8 16:08:49

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

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

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

2026/7/8 16:08:49

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

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

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

2026/7/8 16:08:49

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

基于混沌系统的人脸图像加密方案设计与实现

基于混沌系统的人脸图像加密方案设计与实现

2026/7/8 17:28:52

1. 项目概述:当混沌遇上人脸,一种新的加密思路最近几年,无论是学术圈还是工业界,数据安全和个人隐私保护都被提到了前所未有的高度。人脸识别技术已经渗透到我们生活的方方面面,从手机解锁、支付验证到门禁安防&#x…

从零实现AES-ECB加密算法:深入理解分组密码原理与Python实践

从零实现AES-ECB加密算法:深入理解分组密码原理与Python实践

2026/7/8 17:28:52

1. 项目概述:从“黑盒”到“白盒”的AES ECB之旅 在信息安全领域,加密算法就像守护数据的“保险柜”。AES(Advanced Encryption Standard,高级加密标准)无疑是当今应用最广泛、最受信赖的“保险柜”之一。而ECB&#x…

正点原子开拓者FPGA数码管万年历:三页轮显+物理按键校时+蜂鸣器闹钟

正点原子开拓者FPGA数码管万年历:三页轮显+物理按键校时+蜂鸣器闹钟

2026/7/8 17:28:52

本文还有配套的精品资源,点击获取 简介:这个FPGA万年历工程跑在正点原子开拓者开发板上,用6位共阴数码管实现年月日、时分秒、闹钟时间三页自动轮换显示。所有时间信息实时更新,支持公历完整日期和24小时制时间。通过四个独立物…

写给后端新手的建议:写好日志和错误处理比写代码更重要

写给后端新手的建议:写好日志和错误处理比写代码更重要

2026/7/8 17:28:52

如果你是后端新手,每天沉浸在用各种酷炫框架写出业务逻辑的快感里,那我必须给你当头一棒:你花80%精力写出来的“正确”代码,在线上故障面前可能不值一提。真正决定你系统可靠性的,不是那些精妙的算法或优雅的设计模式&…

安卓学生信息管理APP工程源码包(Android Studio可直接运行,含SQLite增删改查与图文操作指南)

安卓学生信息管理APP工程源码包(Android Studio可直接运行,含SQLite增删改查与图文操作指南)

2026/7/8 17:28:52

本文还有配套的精品资源,点击获取 简介:一套开箱即用的学生信息管理安卓应用工程,基于Android Studio开发,支持真机调试和模拟器运行。项目内置完整功能模块:学生基本信息录入、查询、修改、删除,学生成…

BQ25887锂电平衡充电方案设计与优化

BQ25887锂电平衡充电方案设计与优化

2026/7/8 17:18:52

1. 项目背景与核心需求 在便携式电子设备设计中,两节串联锂离子电池组(2S)已成为主流供电方案。但串联电池组面临一个关键挑战:由于制造工艺差异,各单体电池在充放电过程中会出现电压不平衡现象。这种不平衡如果长期存…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

2026/7/8 0:07:15

1. 项目概述:这不是又一个笔记软件教程,而是一套可复用的“认知操作系统”搭建逻辑你有没有试过,在读完Andrej Karpathy那篇著名的《Software 2.0》之后,满脑子都是“神经网络即代码”的震撼,但合上网页,打…

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

2026/7/8 0:07:15

校园服饰细分赛道测算程序(Python)——学生平价国风 & 机能穿搭市场规模预估(TAM / SAM / SOM)一、实际应用场景描述(真实业务抽象)在《时尚产业与品牌创新》课程中,细分市场切入&#xff0…

Visual C++运行库完整解决方案:告别软件兼容性问题

Visual C++运行库完整解决方案:告别软件兼容性问题

2026/7/8 0:07:15

Visual C运行库完整解决方案:告别软件兼容性问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾为打开游戏时弹出的"DLL缺失"错误…