Skip to content

Cardinal v0.0.2 — Middleware & Router Groups

Choose a tag to compare

@GraHms GraHms released this 06 Sep 09:34
· 3 commits to master since this release

Cardinal v0.0.2 — Middleware & Router Groups

This release makes Cardinal feel like a real framework: global middleware, per-route middleware, and router groups — all while keeping the core minimal.

✨ What’s new

  • Middleware chain
    • r.Use(mwA, mwB) — global middlewares (Recover, Logging, RateLimit sample)
    • router.Middleware = func(Handler) Handler
  • Per-route middleware
    • SHOWWith(path, h, ...mw) / INPUTWith(path, h, ...mw)
    • Order of execution: globals → route → handler
  • Router groups
    • grp := r.Group("/secure", mw...) with optional nesting
    • Group middlewares apply after globals and before route middlewares
    • Execution order: globals → group(s) → route → handler
  • Examples & docs
    • Updated examples showing HMAC/RateLimit as route/group middlewares
    • README sections for Middleware and Groups
  • (Bonus) Emulator
    • Lightweight web emulator at /emu for interactive testing (if you’ve mounted it)

🧭 Usage snippets

Global middleware

r.Use(middleware.Recover(), middleware.Logging(log.Default()))