mirror of
https://github.com/zeromicro/go-zero.git
synced 2026-05-07 15:10:01 +08:00
(goctl)fix: api timeout limited during api generation (#4513)
This commit is contained in:
@@ -139,12 +139,7 @@ rest.WithPrefix("%s"),`, g.prefix)
|
||||
return err
|
||||
}
|
||||
|
||||
// why we check this, maybe some users set value 1, it's 1ns, not 1s.
|
||||
if duration < timeoutThreshold {
|
||||
return fmt.Errorf("timeout should not less than 1ms, now %v", duration)
|
||||
}
|
||||
|
||||
timeout = fmt.Sprintf("\n rest.WithTimeout(%d * time.Millisecond),", duration.Milliseconds())
|
||||
timeout = fmt.Sprintf("\n rest.WithTimeout(%s),", formatDuration(duration))
|
||||
hasTimeout = true
|
||||
}
|
||||
|
||||
@@ -211,6 +206,16 @@ rest.WithPrefix("%s"),`, g.prefix)
|
||||
})
|
||||
}
|
||||
|
||||
func formatDuration(duration time.Duration) string {
|
||||
if duration < time.Microsecond {
|
||||
return fmt.Sprintf("%d * time.Nanosecond", duration.Nanoseconds())
|
||||
}
|
||||
if duration < time.Millisecond {
|
||||
return fmt.Sprintf("%d * time.Microsecond", duration.Microseconds())
|
||||
}
|
||||
return fmt.Sprintf("%d * time.Millisecond", duration.Milliseconds())
|
||||
}
|
||||
|
||||
func genRouteImports(parentPkg string, api *spec.ApiSpec) string {
|
||||
importSet := collection.NewSet()
|
||||
importSet.AddStr(fmt.Sprintf("\"%s\"", pathx.JoinPackages(parentPkg, contextDir)))
|
||||
|
||||
27
tools/goctl/api/gogen/genroutes_test.go
Normal file
27
tools/goctl/api/gogen/genroutes_test.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package gogen
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Test_formatDuration(t *testing.T) {
|
||||
tests := []struct {
|
||||
duration time.Duration
|
||||
expected string
|
||||
}{
|
||||
{0, "0 * time.Nanosecond"},
|
||||
{time.Nanosecond, "1 * time.Nanosecond"},
|
||||
{100 * time.Nanosecond, "100 * time.Nanosecond"},
|
||||
{500 * time.Microsecond, "500 * time.Microsecond"},
|
||||
{2 * time.Millisecond, "2 * time.Millisecond"},
|
||||
{time.Second, "1000 * time.Millisecond"},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
result := formatDuration(test.duration)
|
||||
if result != test.expected {
|
||||
t.Errorf("formatDuration(%v) = %v; want %v", test.duration, result, test.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user