add swagger ui
This commit is contained in:
84
swagger_ui.go
Normal file
84
swagger_ui.go
Normal file
@ -0,0 +1,84 @@
|
||||
// Package api_doc ...
|
||||
//
|
||||
// Description : api_doc ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 2025-02-16 13:19
|
||||
package api_doc
|
||||
|
||||
import (
|
||||
"git.zhangdeman.cn/gateway/api-doc/define"
|
||||
"github.com/gin-gonic/gin"
|
||||
knife4goFiles "github.com/go-webtools/knife4go"
|
||||
knife4goGin "github.com/go-webtools/knife4go/gin"
|
||||
swaggerFiles "github.com/swaggo/files"
|
||||
ginSwagger "github.com/swaggo/gin-swagger"
|
||||
)
|
||||
|
||||
// NewSwaggerUI ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:21 2025/2/15
|
||||
func NewSwaggerUI(info *define.Info, servers []*define.ServerItem, uiTheme string) *SwaggerUI {
|
||||
return &SwaggerUI{
|
||||
docInstance: NewOpenapiDoc(info, servers),
|
||||
uiTheme: uiTheme,
|
||||
}
|
||||
}
|
||||
|
||||
type SwaggerUI struct {
|
||||
docInstance *Generate // 文档实例
|
||||
uiTheme string // 文档主题, swaggerUI / knife4go, 默认 knife4go
|
||||
}
|
||||
|
||||
// DocInstance 文档实例
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 13:23 2025/2/16
|
||||
func (su *SwaggerUI) DocInstance() *Generate {
|
||||
return su.docInstance
|
||||
}
|
||||
|
||||
// Handler 访问文档的接口处理
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:34 2025/2/15
|
||||
func (su *SwaggerUI) Handler() func(ctx *gin.Context) {
|
||||
switch su.uiTheme {
|
||||
case define.SwaggerUIThemeKnife4go:
|
||||
return su.HandleKnife4goUI()
|
||||
case define.SwaggerUIThemeYDocLucky:
|
||||
// TODO : YDoc-Lucky-UI 主题处理
|
||||
return su.HandleSwaggerUI()
|
||||
default:
|
||||
return su.HandleSwaggerUI()
|
||||
}
|
||||
}
|
||||
|
||||
// HandleKnife4goUI ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:38 2025/2/15
|
||||
func (su *SwaggerUI) HandleKnife4goUI() func(ctx *gin.Context) {
|
||||
resetOption := func(cfg *knife4goGin.Config) {
|
||||
if nil == cfg {
|
||||
return
|
||||
}
|
||||
cfg.Title = "服务接口文档"
|
||||
}
|
||||
return knife4goGin.WrapHandler(knife4goFiles.Handler, resetOption)
|
||||
}
|
||||
|
||||
// HandleSwaggerUI ...
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 21:41 2025/2/15
|
||||
func (su *SwaggerUI) HandleSwaggerUI() func(ctx *gin.Context) {
|
||||
return ginSwagger.WrapHandler(swaggerFiles.Handler)
|
||||
}
|
Reference in New Issue
Block a user