Skip to content

feat(group): add SetNotFoundHandle support for router groups#294

Merged
devfeel merged 14 commits into
masterfrom
develop
Mar 3, 2026
Merged

feat(group): add SetNotFoundHandle support for router groups#294
devfeel merged 14 commits into
masterfrom
develop

Conversation

@devfeel

@devfeel devfeel commented Mar 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add SetNotFoundHandle method to Group interface
  • Add notFoundHandler field to xGroup struct
  • Group-level NotFoundHandler takes priority over app-level handler
  • Fix prefix matching to avoid false positives (e.g., /api_v2 matching /api)
  • Add unit tests for SetNotFoundHandle functionality
  • Add example code in example/group/

Usage Example

// Create API group
apiGroup := server.Group("/api")

// Set group-level 404 handler
apiGroup.SetNotFoundHandle(func(ctx dotweb.Context) {
    ctx.Response().Header().Set("Content-Type", "application/json")
    ctx.WriteString(`{"code": 404, "message": "API resource not found"}`)
})

// Register routes
apiGroup.GET("/users", func(ctx dotweb.Context) {
    ctx.WriteString("Users list")
})

Behavior

  • Request to /api/users → Returns "Users list"
  • Request to /api/unknown → Returns JSON 404 response (group handler)
  • Request to /api_v2/test → Returns global 404 (not matched by /api group)
  • Request to /unknown → Returns global 404 (app handler)

Test Plan

  • All unit tests pass
  • Prefix matching fix verified
  • Example code compiles

Resolves: #229

devfeel and others added 14 commits March 1, 2026 17:52
- Upgrade gopkg.in/yaml.v2 to v3 (fixes DoS vulnerability)
- Upgrade golang.org/x/net to v0.33.0 (fixes XSS and proxy bypass)
- Keep Go version at 1.21
- All tests pass

Resolves: Dependabot alerts #9, #10, #11, #24, #25
fix(deps): upgrade yaml.v2 to v3 and golang.org/x/net
- Add SetNotFoundHandle method to Group interface
- Add notFoundHandler field to xGroup struct
- Group-level NotFoundHandler takes priority over app-level
- Update server.groups type from []Group to []*xGroup

Resolves: #229
feat(group): add SetNotFoundHandle support for router groups
- Add SetNotFoundHandle method to Group interface
- Add notFoundHandler field to xGroup struct
- Group-level NotFoundHandler takes priority over app-level handler
- Fix prefix matching to avoid false positives (e.g., /api_v2 matching /api)
- Add unit tests for SetNotFoundHandle functionality
- Add example code in example/group/

Resolves: #229
feat(group): add SetNotFoundHandle support for router groups
feat(group): add SetNotFoundHandle support for router groups
@devfeel devfeel merged commit 34d5708 into master Mar 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

希望组路由支持SetNotFoundHandle

1 participant