feat: swagger switch.

This commit is contained in:
2026-05-04 18:36:09 +08:00
parent 062ed63bb5
commit 30c8094f0f
3 changed files with 24 additions and 18 deletions
+2
View File
@@ -20,3 +20,5 @@ mqtt:
qos: 0
enable_measurement_subscriptions: false
enable_training_event_subscription: true
swagger:
enabled: true
+8 -3
View File
@@ -41,9 +41,14 @@ type MQTTConfig struct {
}
type AppConfig struct {
DB DBConfig `mapstructure:"database" yaml:"database"`
AI AIConfig `mapstructure:"ai" yaml:"ai"`
MQTT MQTTConfig `mapstructure:"mqtt" yaml:"mqtt"`
DB DBConfig `mapstructure:"database" yaml:"database"`
AI AIConfig `mapstructure:"ai" yaml:"ai"`
MQTT MQTTConfig `mapstructure:"mqtt" yaml:"mqtt"`
Swagger SwaggerConfig `mapstructure:"swagger" yaml:"swagger"`
}
type SwaggerConfig struct {
Enabled bool `mapstructure:"enabled" yaml:"enabled"`
}
func InitConfig() {
+14 -15
View File
@@ -4,6 +4,7 @@ import (
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
"hr_receiver/config"
"hr_receiver/controllers"
_ "hr_receiver/docs"
"hr_receiver/middleware"
@@ -49,15 +50,15 @@ func SetupRouter() *gin.Engine {
r.GET("/auth/token", deviceTokenHandler)
// Swagger API文档 (swaggo/gin-swagger持久化鉴权信息)
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler,
ginSwagger.PersistAuthorization(true),
))
// 开发模式下注册 API 文档路由
if config.App.Swagger.Enabled {
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler,
ginSwagger.PersistAuthorization(true),
))
// Scalar 精美API文档
r.GET("/scalar", func(c *gin.Context) {
c.Header("Content-Type", "text/html; charset=utf-8")
c.String(http.StatusOK, `<!doctype html>
r.GET("/scalar", func(c *gin.Context) {
c.Header("Content-Type", "text/html; charset=utf-8")
c.String(http.StatusOK, `<!doctype html>
<html>
<head>
<title>API Reference</title>
@@ -71,16 +72,14 @@ func SetupRouter() *gin.Engine {
<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
<script>
Scalar.createApiReference('#app', {
spec: {
url: '/swagger/doc.json',
},
persistAuth: true,
})
Scalar.createApiReference('#app', {
url: '/swagger/doc.json',
})
</script>
</body>
</html>`)
})
})
}
v1 := r.Group("/api/v1")
{