Swagger UI:如何让内部锚点链接在当前页面跳转而非新标签页
解决Swagger参数描述内端点链接不新开标签页的问题
针对你遇到的Swagger参数描述中链接到其他端点时默认新开标签页、HTML锚点无效的问题,可尝试以下两种方案:
方案1:使用带target="_self"的相对路径HTML锚点
在OpenAPI YAML的参数描述里,用HTML <a> 标签指定相对锚点路径并设置target="_self",强制链接在当前标签页跳转:
paths: /stats/team/game-sbz: get: tags: - Team Game Stats summary: Game shooting-by-zone statistics for teams description: Get game shooting-by-zone statistics for teams operationId: getSbzStatsTeamGame parameters: - name: competitionIds in: query description: see <a href="#/Entities/getCompetitions" target="_self">/competitions</a> for more info on available competitions.
相对路径#/Entities/getCompetitions对应目标端点的文档位置,target="_self"会覆盖Swagger UI默认的新开标签页行为。
方案2:自定义Swagger UI配置(进阶)
如果方案1不生效,可在Swagger UI的初始化代码中修改链接默认行为。通过JavaScript在UI加载完成后,批量调整内部锚点的跳转规则:
const ui = SwaggerUIBundle({ url: "/open_api.yaml", dom_id: '#swagger-ui', // 其他原有配置... onComplete: function() { // 遍历所有内部端点链接,设置为当前标签页跳转 document.querySelectorAll('a[href^="#/"]').forEach(link => { link.target = "_self"; }); } });
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

