feat: 增加注册注入参数的方法
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"git.zhangdeman.cn/zhangdeman/graceful"
|
||||
|
||||
@@ -129,14 +130,17 @@ func NewServer(port int, optionList ...SetServerOptionFunc) *server {
|
||||
uiInstance: apiDoc.NewSwaggerUI(option.serverInfo, option.serverList, apiDocEnum.SwaggerUITheme(option.swaggerUiTheme)),
|
||||
port: port,
|
||||
option: option,
|
||||
lock: &sync.RWMutex{},
|
||||
}
|
||||
}
|
||||
|
||||
type server struct {
|
||||
router *gin.Engine
|
||||
port int
|
||||
uiInstance *apiDoc.SwaggerUI
|
||||
option *serverOption
|
||||
router *gin.Engine
|
||||
port int
|
||||
uiInstance *apiDoc.SwaggerUI
|
||||
option *serverOption
|
||||
commonParam map[string]GetCommonParam // 结构体字段名, 注意, 不是TAG
|
||||
lock *sync.RWMutex
|
||||
}
|
||||
|
||||
// Start 启动服务
|
||||
@@ -201,21 +205,22 @@ func (s *server) Group(routerPrefix string, middlewareList []gin.HandlerFunc, cL
|
||||
for _, itemUriCfg := range urlTable {
|
||||
_ = s.uiInstance.DocInstance().AddApiFromInAndOut(routerPrefix, itemUriCfg.FormDataType, itemUriCfg.ResultDataType)
|
||||
method := strings.ToUpper(itemUriCfg.RequestMethod)
|
||||
handleFunc := s.RequestHandler(itemUriCfg)
|
||||
switch method {
|
||||
case http.MethodGet:
|
||||
g.GET(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.GET(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodHead:
|
||||
g.HEAD(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.HEAD(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodPost:
|
||||
g.POST(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.POST(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodPut:
|
||||
g.PUT(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.PUT(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodPatch:
|
||||
g.PATCH(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.PATCH(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodDelete:
|
||||
g.DELETE(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.DELETE(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodOptions:
|
||||
g.OPTIONS(itemUriCfg.Path, RequestHandler(itemUriCfg))
|
||||
g.OPTIONS(itemUriCfg.Path, handleFunc)
|
||||
case http.MethodTrace:
|
||||
panic(`method Trace is not supported`)
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user