feat: swagger switch.
This commit is contained in:
@@ -20,3 +20,5 @@ mqtt:
|
||||
qos: 0
|
||||
enable_measurement_subscriptions: false
|
||||
enable_training_event_subscription: true
|
||||
swagger:
|
||||
enabled: true
|
||||
|
||||
+8
-3
@@ -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
@@ -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")
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user