Skip to content

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

Merged
devfeel merged 1 commit into
aicodefrom
aicode-issue-229
Mar 3, 2026
Merged

feat(group): add SetNotFoundHandle support for router groups#290
devfeel merged 1 commit into
aicodefrom
aicode-issue-229

Conversation

@devfeel
Copy link
Copy Markdown
Owner

@devfeel devfeel commented Mar 3, 2026

Summary

  • Add SetNotFoundHandle method to Group interface
  • Add notFoundHandler field to xGroup struct
  • Group-level NotFoundHandler takes priority over app-level handler

Usage Example

func main() {
    dotapp := dotweb.New()
    
    // Create API group
    apiGroup := dotapp.HttpServer.Group("/api")
    
    // Set group-specific 404 handler
    apiGroup.SetNotFoundHandle(func(ctx dotweb.Context) error {
        ctx.WriteString("API 404 - Resource not found")
        return nil
    })
    
    // Register routes
    apiGroup.GET("/users", func(ctx dotweb.Context) error {
        ctx.WriteString("Users list")
        return nil
    })
    
    dotapp.StartServer(8080)
}

Behavior

  • Request to /api/users → Returns "Users list"
  • Request to /api/unknown → Returns "API 404 - Resource not found" (group handler)
  • Request to /unknown → Returns global 404 (app handler)

Test Plan

  • All existing tests pass

  • Manual testing with example code

  • Verify group 404 handler priority

  • Verify fallback to app-level handler

Resolves: #229

- 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
@devfeel devfeel merged commit f69e8e7 into aicode Mar 3, 2026
1 check passed
@devfeel devfeel deleted the aicode-issue-229 branch March 8, 2026 08:56
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.

1 participant