From a84f352fe3531ee6407b6cd3ddcc3f7185b31c24 Mon Sep 17 00:00:00 2001 From: Sediman Date: Wed, 27 May 2026 22:33:58 +0200 Subject: [PATCH] docs: document panic conditions for Handle, StaticFS, and Bind --- routergroup.go | 4 ++++ utils.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/routergroup.go b/routergroup.go index c01b917e..dd8300ed 100644 --- a/routergroup.go +++ b/routergroup.go @@ -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). +// +// Handle panics if httpMethod is not a valid, uppercase HTTP method name (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() +// +// StaticFS 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") diff --git a/utils.go b/utils.go index 2fecce46..ff7cf967 100644 --- a/utils.go +++ b/utils.go @@ -26,6 +26,8 @@ const localhostIP = "127.0.0.1" const localhostIPv6 = "::1" // Bind is a helper function for given interface object and returns a Gin middleware. +// +// Bind panics if val is a pointer; pass the struct value directly (e.g., Bind(MyStruct{}) not Bind(&MyStruct{})). func Bind(val any) HandlerFunc { value := reflect.ValueOf(val) if value.Kind() == reflect.Ptr {