整合redoc免费版swagger文档主题
This commit is contained in:
parent
ab8f68c799
commit
93d399d845
29
redoc-free/index.html
Normal file
29
redoc-free/index.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Redoc</title>
|
||||||
|
<!-- needed for adaptive design -->
|
||||||
|
<meta charset="utf-8"/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<!-- https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700 -->
|
||||||
|
<!-- 预留占位符, 可以通过外部替换 -->
|
||||||
|
<link href="{{CSS_FAMILY}}" rel="stylesheet">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Redoc doesn't change outer page styles
|
||||||
|
-->
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- 预留占位符, 可以通过外部替换 -->
|
||||||
|
<!--doc.json, 相对于外部设置好的base_url-->
|
||||||
|
<redoc spec-url='{{DOC_PATH}}'></redoc>
|
||||||
|
<!--https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js-->
|
||||||
|
<script src="{{REDOC_STANDALONE_JS}}"> </script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -23,6 +23,9 @@ import (
|
|||||||
//go:embed ydoc-lucky-ui/*
|
//go:embed ydoc-lucky-ui/*
|
||||||
var ydocUIFiles embed.FS
|
var ydocUIFiles embed.FS
|
||||||
|
|
||||||
|
//go:embed redoc-free/index.html
|
||||||
|
var redocFreeIndexContent string
|
||||||
|
|
||||||
// NewSwaggerUI ...
|
// NewSwaggerUI ...
|
||||||
//
|
//
|
||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
@ -109,8 +112,8 @@ func (su *SwaggerUI) Handler() func(ctx *gin.Context) {
|
|||||||
case define.SwaggerUIThemeDefault:
|
case define.SwaggerUIThemeDefault:
|
||||||
return su.HandleSwaggerUI()
|
return su.HandleSwaggerUI()
|
||||||
case define.SwaggerUIThemeRedocFree:
|
case define.SwaggerUIThemeRedocFree:
|
||||||
// redoc免费版, TODO : 待完成
|
// redoc免费版
|
||||||
return su.HandleSwaggerUI()
|
return su.HandleRedocFreeUI()
|
||||||
default:
|
default:
|
||||||
return su.HandleSwaggerUI()
|
return su.HandleSwaggerUI()
|
||||||
}
|
}
|
||||||
@ -165,3 +168,25 @@ func (su *SwaggerUI) HandleKnife4goUI() func(ctx *gin.Context) {
|
|||||||
func (su *SwaggerUI) HandleSwaggerUI() func(ctx *gin.Context) {
|
func (su *SwaggerUI) HandleSwaggerUI() func(ctx *gin.Context) {
|
||||||
return ginSwagger.WrapHandler(swaggerFiles.Handler)
|
return ginSwagger.WrapHandler(swaggerFiles.Handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HandleRedocFreeUI 处理redoc_free主题
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:40 2025/2/18
|
||||||
|
func (su *SwaggerUI) HandleRedocFreeUI() func(ctx *gin.Context) {
|
||||||
|
return func(ctx *gin.Context) {
|
||||||
|
// TODO : 这部分数据支持外部传参替换
|
||||||
|
replaceTable := map[string]string{
|
||||||
|
"{{CSS_FAMILY}}": "https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700",
|
||||||
|
"{{DOC_PATH}}": "doc.json",
|
||||||
|
"{{REDOC_STANDALONE_JS}}": "https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js",
|
||||||
|
}
|
||||||
|
for k, v := range replaceTable {
|
||||||
|
redocFreeIndexContent = strings.ReplaceAll(redocFreeIndexContent, k, v)
|
||||||
|
}
|
||||||
|
ctx.Header("Content-Type", "text/html; charset=utf-8")
|
||||||
|
ctx.String(http.StatusOK, redocFreeIndexContent)
|
||||||
|
ctx.Abort()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user