Skip to content

chore: migrate routing from chi to weby#1390

Open
jrozner wants to merge 1 commit into
mainfrom
chore/swap-http
Open

chore: migrate routing from chi to weby#1390
jrozner wants to merge 1 commit into
mainfrom
chore/swap-http

Conversation

@jrozner

@jrozner jrozner commented Feb 25, 2026

Copy link
Copy Markdown
Member

Replace github.com/go-chi/chi/v5 with github.com/jrozner/weby throughout the backend. Weby wraps Go 1.22+ stdlib routing (http.ServeMux) and provides a global middleware stack.

Key changes:

  • Entry points (bin/web, bin/api, bin/dev) and integration helpers now use weby.NewServeMux() with RequestID/WrapResponse/Logger middleware
  • server.Web() and server.API() signatures changed from chi.Router to *http.ServeMux; inner authenticated routes wrapped with per-group middleware using handler chaining
  • Route patterns updated to stdlib "METHOD /path" format; {type:regex} patterns simplified to {type} (handler already validates values)
  • authschemes.AuthScheme.BindRoutes() changed from chi.Router to *http.ServeMux; all four auth scheme implementations updated
  • dissectors.DissectedRequest.FromURL() now uses r.PathValue() instead of a chi url-param map; constructor signatures simplified accordingly
  • Added middleware.InjectLogger() thin wrapper to inject request-scoped logger into context (used by logging.ReqLogger throughout services)
  • Updated dissected_request_test.go to use r.SetPathValue() for URL param tests

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Replace github.com/go-chi/chi/v5 with github.com/jrozner/weby throughout
the backend. Weby wraps Go 1.22+ stdlib routing (http.ServeMux) and
provides a global middleware stack.

Key changes:
- Entry points (bin/web, bin/api, bin/dev) and integration helpers now
  use weby.NewServeMux() with RequestID/WrapResponse/Logger middleware
- server.Web() and server.API() signatures changed from chi.Router to
  *http.ServeMux; inner authenticated routes wrapped with per-group
  middleware using handler chaining
- Route patterns updated to stdlib "METHOD /path" format; {type:regex}
  patterns simplified to {type} (handler already validates values)
- authschemes.AuthScheme.BindRoutes() changed from chi.Router to
  *http.ServeMux; all four auth scheme implementations updated
- dissectors.DissectedRequest.FromURL() now uses r.PathValue() instead
  of a chi url-param map; constructor signatures simplified accordingly
- Added middleware.InjectLogger() thin wrapper to inject request-scoped
  logger into context (used by logging.ReqLogger throughout services)
- Updated dissected_request_test.go to use r.SetPathValue() for URL
  param tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jkennedyvz

Copy link
Copy Markdown
Contributor

@jrozner can you rebase?

@jrozner

jrozner commented Mar 10, 2026

Copy link
Copy Markdown
Member Author

I'm going to drop this PR and rewrite it. Would like to leave it up currently for reference.

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.

2 participants