Files
go-gin-api/internal/router/router_api.go

104 lines
4.6 KiB
Go
Raw Normal View History

2021-03-20 22:05:59 +08:00
package router
import (
"github.com/xinliangnote/go-gin-api/internal/api/admin"
"github.com/xinliangnote/go-gin-api/internal/api/authorized"
"github.com/xinliangnote/go-gin-api/internal/api/config"
"github.com/xinliangnote/go-gin-api/internal/api/cron"
"github.com/xinliangnote/go-gin-api/internal/api/helper"
"github.com/xinliangnote/go-gin-api/internal/api/menu"
"github.com/xinliangnote/go-gin-api/internal/api/tool"
2021-03-20 22:05:59 +08:00
"github.com/xinliangnote/go-gin-api/internal/pkg/core"
)
func setApiRouter(r *resource) {
// helper
helperHandler := helper.New(r.logger, r.db, r.cache)
helpers := r.mux.Group("/helper")
{
helpers.GET("/md5/:str", helperHandler.Md5())
helpers.POST("/sign", helperHandler.Sign())
}
2021-04-10 15:05:50 +08:00
// admin
adminHandler := admin.New(r.logger, r.db, r.cache)
2021-04-10 15:05:50 +08:00
2021-05-09 21:43:23 +08:00
// 需要签名验证,无需登录验证,无需 RBAC 权限验证
login := r.mux.Group("/api", r.interceptors.CheckSignature())
2021-04-10 15:05:50 +08:00
{
2021-05-09 21:43:23 +08:00
login.POST("/login", adminHandler.Login())
2021-04-10 15:05:50 +08:00
}
2021-05-09 21:43:23 +08:00
// 需要签名验证、登录验证,无需 RBAC 权限验证
notRBAC := r.mux.Group("/api", core.WrapAuthHandler(r.interceptors.CheckLogin), r.interceptors.CheckSignature())
2021-05-09 21:43:23 +08:00
{
notRBAC.POST("/admin/logout", adminHandler.Logout())
notRBAC.PATCH("/admin/modify_password", adminHandler.ModifyPassword())
notRBAC.GET("/admin/info", adminHandler.Detail())
notRBAC.PATCH("/admin/modify_personal_info", adminHandler.ModifyPersonalInfo())
}
// 需要签名验证、登录验证、RBAC 权限验证
api := r.mux.Group("/api", core.WrapAuthHandler(r.interceptors.CheckLogin), r.interceptors.CheckSignature(), r.interceptors.CheckRBAC())
2021-03-28 15:52:02 +08:00
{
2021-04-18 19:54:31 +08:00
// authorized
authorizedHandler := authorized.New(r.logger, r.db, r.cache)
2021-03-28 15:52:02 +08:00
api.POST("/authorized", authorizedHandler.Create())
api.GET("/authorized", authorizedHandler.List())
api.PATCH("/authorized/used", authorizedHandler.UpdateUsed())
2021-04-18 19:54:31 +08:00
api.DELETE("/authorized/:id", core.AliasForRecordMetrics("/api/authorized/info"), authorizedHandler.Delete())
2021-03-28 15:52:02 +08:00
api.POST("/authorized_api", authorizedHandler.CreateAPI())
2021-04-10 15:05:50 +08:00
api.GET("/authorized_api", authorizedHandler.ListAPI())
2021-04-18 19:54:31 +08:00
api.DELETE("/authorized_api/:id", core.AliasForRecordMetrics("/api/authorized_api/info"), authorizedHandler.DeleteAPI())
2021-03-28 15:52:02 +08:00
2021-04-10 15:05:50 +08:00
api.POST("/admin", adminHandler.Create())
api.GET("/admin", adminHandler.List())
api.PATCH("/admin/used", adminHandler.UpdateUsed())
2021-05-15 13:01:30 +08:00
api.PATCH("/admin/offline", adminHandler.Offline())
2021-05-09 21:43:23 +08:00
api.PATCH("/admin/reset_password/:id", core.AliasForRecordMetrics("/api/admin/reset_password"), adminHandler.ResetPassword())
api.DELETE("/admin/:id", core.AliasForRecordMetrics("/api/admin"), adminHandler.Delete())
api.POST("/admin/menu", adminHandler.CreateAdminMenu())
api.GET("/admin/menu/:id", core.AliasForRecordMetrics("/api/admin/menu"), adminHandler.ListAdminMenu())
2021-04-10 15:05:50 +08:00
2021-05-05 17:20:48 +08:00
// menu
menuHandler := menu.New(r.logger, r.db, r.cache)
2021-05-05 17:20:48 +08:00
api.POST("/menu", menuHandler.Create())
api.GET("/menu", menuHandler.List())
2021-05-09 21:43:23 +08:00
api.GET("/menu/:id", core.AliasForRecordMetrics("/api/menu"), menuHandler.Detail())
2021-05-05 17:20:48 +08:00
api.PATCH("/menu/used", menuHandler.UpdateUsed())
2021-05-15 13:01:30 +08:00
api.PATCH("/menu/sort", menuHandler.UpdateSort())
2021-05-09 21:43:23 +08:00
api.DELETE("/menu/:id", core.AliasForRecordMetrics("/api/menu"), menuHandler.Delete())
api.POST("/menu_action", menuHandler.CreateAction())
api.GET("/menu_action", menuHandler.ListAction())
api.DELETE("/menu_action/:id", core.AliasForRecordMetrics("/api/menu_action"), menuHandler.DeleteAction())
2021-05-05 17:20:48 +08:00
2021-03-28 15:52:02 +08:00
// tool
toolHandler := tool.New(r.logger, r.db, r.cache)
2021-05-09 21:43:23 +08:00
api.GET("/tool/hashids/encode/:id", core.AliasForRecordMetrics("/api/tool/hashids/encode"), toolHandler.HashIdsEncode())
api.GET("/tool/hashids/decode/:id", core.AliasForRecordMetrics("/api/tool/hashids/decode"), toolHandler.HashIdsDecode())
2021-05-05 17:20:48 +08:00
api.POST("/tool/cache/search", toolHandler.SearchCache())
api.PATCH("/tool/cache/clear", toolHandler.ClearCache())
api.GET("/tool/data/dbs", toolHandler.Dbs())
api.POST("/tool/data/tables", toolHandler.Tables())
api.POST("/tool/data/mysql", toolHandler.SearchMySQL())
api.POST("/tool/send_message", toolHandler.SendMessage())
2021-04-18 19:54:31 +08:00
// config
configHandler := config.New(r.logger, r.db, r.cache)
2021-04-18 19:54:31 +08:00
api.PATCH("/config/email", configHandler.Email())
// cron
cronHandler := cron.New(r.logger, r.db, r.cache, r.cronServer)
api.POST("/cron", cronHandler.Create())
api.GET("/cron", cronHandler.List())
api.GET("/cron/:id", core.AliasForRecordMetrics("/api/cron/detail"), cronHandler.Detail())
api.POST("/cron/:id", core.AliasForRecordMetrics("/api/cron/modify"), cronHandler.Modify())
api.PATCH("/cron/used", cronHandler.UpdateUsed())
api.PATCH("/cron/exec/:id", core.AliasForRecordMetrics("/api/cron/exec"), cronHandler.Execute())
2021-03-28 15:52:02 +08:00
}
2021-03-20 22:05:59 +08:00
}