group

command
v1.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2026 License: MIT Imports: 2 Imported by: 0

README

Group SetNotFoundHandle Example

This example demonstrates how to use Group.SetNotFoundHandle to set custom 404 handlers for router groups.

Features

  • Group-level 404 handler: Set custom 404 response for specific route groups
  • Priority: Group-level handler takes priority over app-level handler
  • Flexible: Different groups can have different 404 handlers

Usage

# Run the example
go run main.go

# Test routes
curl http://localhost:8080/                    # Welcome page
curl http://localhost:8080/api/users          # API: Users list
curl http://localhost:8080/api/health         # API: Health check
curl http://localhost:8080/api/unknown        # API: 404 (group handler)
curl http://localhost:8080/web/index          # Web: Index page
curl http://localhost:8080/web/unknown        # Web: 404 (global handler)
curl http://localhost:8080/unknown            # Global: 404 (global handler)

Expected Responses

API Group (custom 404)
$ curl http://localhost:8080/api/unknown
{"code": 404, "message": "API 404 - Resource not found", "hint": "Check API documentation for available endpoints"}
Web Group (uses global 404)
$ curl http://localhost:8080/web/unknown
{"code": 404, "message": "Global 404 - Page not found"}
Global 404
$ curl http://localhost:8080/unknown
{"code": 404, "message": "Global 404 - Page not found"}

Code Explanation

// Set global 404 handler (fallback)
app.SetNotFoundHandle(func(ctx dotweb.Context) error {
    return ctx.WriteString(`{"code": 404, "message": "Global 404"}`)
})

// Create API group with custom 404 handler
apiGroup := app.HttpServer.Group("/api")
apiGroup.SetNotFoundHandle(func(ctx dotweb.Context) error {
    return ctx.WriteString(`{"code": 404, "message": "API 404"}`)
})

// Web group uses global 404 (no SetNotFoundHandle)
webGroup := app.HttpServer.Group("/web")

Use Cases

  1. API vs Web: Return JSON for API 404s, HTML for Web 404s
  2. Versioned APIs: Different 404 messages for v1 vs v2 APIs
  3. Multi-tenant: Custom 404 per tenant group
  4. Internationalization: Different language 404 messages per group

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL