Compare commits

...

2 Commits

Author SHA1 Message Date
冰水泡枸杞
67da8a3f9b
Merge 8f92e3109ceb2e518662848f760a2a0fe4b5d7f5 into 34dac209ffb6ef85cc78c5d217bbb7ad001d68fd 2026-06-27 11:10:31 +08:00
xingzihai
8f92e3109c docs: add panic conditions documentation for Handle, StaticFS, and Bind
This commit adds documentation for panic conditions in three exported functions:

- Handle: panics if httpMethod is not a valid HTTP method (uppercase ASCII letters only)
- StaticFS: panics if relativePath contains URL parameters (: or *)
- Bind: panics if val is a pointer

Fixes #4594
2026-03-30 03:51:32 +00:00
2 changed files with 5 additions and 0 deletions

View File

@ -100,6 +100,8 @@ func (group *RouterGroup) handle(httpMethod, relativePath string, handlers Handl
// This function is intended for bulk loading and to allow the usage of less
// frequently used, non-standardized or custom methods (e.g. for internal
// communication with a proxy).
//
// It panics if httpMethod is not a valid HTTP method (uppercase ASCII letters only).
func (group *RouterGroup) Handle(httpMethod, relativePath string, handlers ...HandlerFunc) IRoutes {
if matched := regEnLetter.MatchString(httpMethod); !matched {
panic("http method " + httpMethod + " is not valid")
@ -200,6 +202,8 @@ func (group *RouterGroup) Static(relativePath, root string) IRoutes {
// StaticFS works just like `Static()` but a custom `http.FileSystem` can be used instead.
// Gin by default uses: gin.Dir()
//
// It panics if relativePath contains URL parameters (: or *).
func (group *RouterGroup) StaticFS(relativePath string, fs http.FileSystem) IRoutes {
if strings.Contains(relativePath, ":") || strings.Contains(relativePath, "*") {
panic("URL parameters can not be used when serving a static folder")

View File

@ -26,6 +26,7 @@ const localhostIP = "127.0.0.1"
const localhostIPv6 = "::1"
// Bind is a helper function for given interface object and returns a Gin middleware.
// It panics if val is a pointer; pass the struct value directly (e.g., Bind(Struct{}) not Bind(&Struct{})).
func Bind(val any) HandlerFunc {
value := reflect.ValueOf(val)
if value.Kind() == reflect.Ptr {