support custom maxBytes in API file (#2822)
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"sort"
|
"sort"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"text/template"
|
"text/template"
|
||||||
"time"
|
"time"
|
||||||
@@ -36,7 +37,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
|||||||
`
|
`
|
||||||
routesAdditionTemplate = `
|
routesAdditionTemplate = `
|
||||||
server.AddRoutes(
|
server.AddRoutes(
|
||||||
{{.routes}} {{.jwt}}{{.signature}} {{.prefix}} {{.timeout}}
|
{{.routes}} {{.jwt}}{{.signature}} {{.prefix}} {{.timeout}} {{.maxBytes}}
|
||||||
)
|
)
|
||||||
`
|
`
|
||||||
timeoutThreshold = time.Millisecond
|
timeoutThreshold = time.Millisecond
|
||||||
@@ -64,6 +65,7 @@ type (
|
|||||||
middlewares []string
|
middlewares []string
|
||||||
prefix string
|
prefix string
|
||||||
jwtTrans string
|
jwtTrans string
|
||||||
|
maxBytes string
|
||||||
}
|
}
|
||||||
route struct {
|
route struct {
|
||||||
method string
|
method string
|
||||||
@@ -127,10 +129,20 @@ rest.WithPrefix("%s"),`, g.prefix)
|
|||||||
return fmt.Errorf("timeout should not less than 1ms, now %v", duration)
|
return fmt.Errorf("timeout should not less than 1ms, now %v", duration)
|
||||||
}
|
}
|
||||||
|
|
||||||
timeout = fmt.Sprintf("rest.WithTimeout(%d * time.Millisecond),", duration/time.Millisecond)
|
timeout = fmt.Sprintf("\n rest.WithTimeout(%d * time.Millisecond),", duration/time.Millisecond)
|
||||||
hasTimeout = true
|
hasTimeout = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var maxBytes string
|
||||||
|
if len(g.maxBytes) > 0 {
|
||||||
|
_, err := strconv.ParseInt(g.maxBytes, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("maxBytes %s parse error,it is an invalid number", g.maxBytes)
|
||||||
|
}
|
||||||
|
|
||||||
|
maxBytes = fmt.Sprintf("\n rest.WithMaxBytes(%s),", g.maxBytes)
|
||||||
|
}
|
||||||
|
|
||||||
var routes string
|
var routes string
|
||||||
if len(g.middlewares) > 0 {
|
if len(g.middlewares) > 0 {
|
||||||
gbuilder.WriteString("\n}...,")
|
gbuilder.WriteString("\n}...,")
|
||||||
@@ -152,6 +164,7 @@ rest.WithPrefix("%s"),`, g.prefix)
|
|||||||
"signature": signature,
|
"signature": signature,
|
||||||
"prefix": prefix,
|
"prefix": prefix,
|
||||||
"timeout": timeout,
|
"timeout": timeout,
|
||||||
|
"maxBytes": maxBytes,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -230,6 +243,7 @@ func getRoutes(api *spec.ApiSpec) ([]group, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
groupedRoutes.timeout = g.GetAnnotation("timeout")
|
groupedRoutes.timeout = g.GetAnnotation("timeout")
|
||||||
|
groupedRoutes.maxBytes = g.GetAnnotation("maxBytes")
|
||||||
|
|
||||||
jwt := g.GetAnnotation("jwt")
|
jwt := g.GetAnnotation("jwt")
|
||||||
if len(jwt) > 0 {
|
if len(jwt) > 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user