yjp 1 жил өмнө
parent
commit
302f5d76e0

+ 11 - 2
framework/gateway/builder.go

@@ -15,12 +15,21 @@ type Builder struct {
 	httpTimeoutSec int64
 }
 
-func newBuilder(router api.Router, httpClient *http_client.Client, httpTimeoutSec int64) *Builder {
-	return &Builder{
+func newBuilder(router api.Router, httpClient *http_client.Client, httpTimeoutSec int64, middlewares ...Handler) *Builder {
+	builder := &Builder{
 		router:         router,
 		httpClient:     httpClient,
 		httpTimeoutSec: httpTimeoutSec,
 	}
+
+	apiMiddlewares := make([]api.Handler, len(middlewares))
+	for _, middleware := range middlewares {
+		apiMiddlewares = append(apiMiddlewares, builder.formApiHandler(middleware))
+	}
+
+	builder.router.AddMiddlewares(apiMiddlewares...)
+
+	return builder
 }
 
 func (builder *Builder) PostRoute(relativePath string, handler Handler, middlewares ...Handler) {

+ 2 - 2
framework/gateway/gateway.go

@@ -39,8 +39,8 @@ func DestroyGateway(gw *Gateway) {
 	gw = nil
 }
 
-func (gw *Gateway) NewBuilder(routerType string, version string) *Builder {
-	return newBuilder(gw.api.ChooseRouter(routerType, version), gw.httpClient, gw.options.httpClientTimeoutSec)
+func (gw *Gateway) NewBuilder(routerType string, version string, middlewares ...Handler) *Builder {
+	return newBuilder(gw.api.ChooseRouter(routerType, version), gw.httpClient, gw.options.httpClientTimeoutSec, middlewares...)
 }
 
 type Option func(options *Options)