forked from sea-team/gofound
-
Notifications
You must be signed in to change notification settings - Fork 0
/
router.go
68 lines (60 loc) · 1.63 KB
/
router.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package router
import (
"github.com/linzedo/gofound/global"
"github.com/linzedo/gofound/web/admin"
"github.com/linzedo/gofound/web/middleware"
"io"
"log"
"mime"
"strings"
"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
)
// SetupRouter 路由管理
func SetupRouter() *gin.Engine {
if global.CONFIG.Debug {
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
gin.DefaultWriter = io.Discard //禁止Gin的控制台输出
}
router := gin.Default()
// 启用GZIP压缩
if global.CONFIG.EnableGzip {
router.Use(gzip.Gzip(gzip.DefaultCompression))
}
var handlers []gin.HandlerFunc
//认证
if global.CONFIG.Auth != "" {
auths := strings.Split(global.CONFIG.Auth, ":")
handlers = append(handlers, gin.BasicAuth(
gin.Accounts{
auths[0]: auths[1],
},
),
)
log.Println("Enable Auth:", global.CONFIG.Auth)
}
// 告诉服务.js文件的MIME类型
err := mime.AddExtensionType(".js", "application/javascript")
// 如果存在错误则需要马上抛出
if err != nil {
panic("添加扩展类型 mime 错误,错误原因:" + err.Error())
}
//注册admin
if global.CONFIG.EnableAdmin {
admin.Register(router, handlers...)
log.Printf("Admin Url: \t http://%v/admin", global.CONFIG.Addr)
}
// 分组管理 中间件管理
router.Use(middleware.Cors(), middleware.Exception())
group := router.Group("/api", handlers...)
{
InitBaseRouter(group) // 基础管理
InitIndexRouter(group) // 索引管理
InitDatabaseRouter(group) // 数据库管理
InitWordRouter(group) // 分词管理
}
log.Printf("API Url: \t http://%v/api", global.CONFIG.Addr)
return router
}