/
main.go
67 lines (55 loc) · 1.33 KB
/
main.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
package main
import (
"fmt"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
"go-web-demo/component"
"go-web-demo/config"
"go-web-demo/handler"
"go-web-demo/middleware"
"log"
)
var (
router *gin.Engine
)
func init() {
//Initialize components from config yaml: mysql locaCache casbin
component.CreateByConfig()
// Initialize gin engine
router = gin.Default()
// Initialize gin middleware
corsConfig := cors.DefaultConfig()
corsConfig.AllowAllOrigins = true
corsConfig.AllowCredentials = true
router.Use(cors.New(corsConfig))
router.Use(middleware.Recover)
// Initialize gin router
user := router.Group("/user")
{
user.POST("/login", handler.Login)
user.POST("/logout", handler.Logout)
user.POST("/register", handler.Register)
}
test := router.Group("/test")
{
test.POST("/t1", func(context *gin.Context) {
})
test.POST("/t2", func(context *gin.Context) {
})
}
resource := router.Group("/api")
{
resource.Use(middleware.DefaultAuthorize("user::resource", "read-write"))
resource.GET("/resource", handler.ReadResource)
resource.POST("/resource", handler.WriteResource)
}
}
func main() {
// Start
port := config.Reader.Server.Port
err := router.Run(":" + port)
if err != nil {
panic(fmt.Sprintf("failed to start gin engine: %v", err))
}
log.Println("application is now running...")
}