(goctl)fix: api timeout limited during api generation (#4513)

This commit is contained in:
kesonan
2024-12-19 16:19:10 +08:00
committed by GitHub
parent 9c4ed394a7
commit 6700910f64
5 changed files with 42 additions and 12 deletions

View File

@@ -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)))