Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: oapi-codegen/oapi-codegen
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main@{1day}
Choose a base ref
...
head repository: oapi-codegen/oapi-codegen
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref
  • 1 commit
  • 89 files changed
  • 2 contributors

Commits on Apr 20, 2026

  1. fix: clean up and test parameter binding (#2307)

    * fix: clean up and test parameter binding
    
    Audit and fix parameter binding in all 8 server code generation
    templates (Echo v4, Echo v5, Chi, Gin, Gorilla, Iris, Fiber, stdhttp)
    to ensure consistent, correct handling of path, query, header, and
    cookie parameters across all OpenAPI styles and types.
    
    Template fixes:
    - Add missing ParamLocation to path params (Gin, Fiber, Gorilla) and
      cookie params (Chi, Gin, Fiber, Gorilla, stdhttp) so the runtime
      applies correct URL escaping per location
    - Add missing Type/Format fields to Echo v5 path, header, and cookie
      params, and upgrade its query binding to BindQueryParameterWithOptions
    - Fix required deepObject query params rejected by a spurious pre-check
      in Chi, Gin, Gorilla, Fiber, and stdhttp templates
    - Fix Gin, Iris, and Fiber using query param getters instead of path
      param getters for content-based (passthrough/JSON) path parameters
    - Fix Iris cookie params calling nonexistent ctx.Cookie() (now
      ctx.GetCookie()) and query params calling ctx.QueryParam() (now
      ctx.URLParam())
    - Fix Fiber cookie params redeclaring var in a loop (now block-scoped)
    - Fix Fiber not URL-decoding path param values for passthrough/JSON
    - Add _ = err to suppress unused variable when only passthrough path
      params exist (Chi, Gin, Gorilla, Iris, Fiber, stdhttp)
    
    Multi-router parameter roundtrip test:
    - New test infrastructure under internal/test/parameters/ with
      per-router subdirectories (echo, chi, gin, gorilla, iris, fiber,
      stdhttp) plus a shared client package
    - Each router's server echoes received parameters back as JSON; the
      shared testImpl sends requests via the generated client and verifies
      the JSON response matches the original values
    - Generated files isolated in gen/ subdirectories so go generate works
      even when generated code has compilation errors
    - Echo v5 in its own module (Go 1.25+) with version-guarded Makefile
    - Covers all OpenAPI parameter styles (simple, label, matrix, form,
      deepObject) x types (primitive, array, object) x explode flags
      across path, query, header, and cookie locations
    
    Skipped tests pending external changes:
    - spaceDelimited and pipeDelimited query styles: runtime does not yet
      support binding these styles (oapi-codegen/runtime#116)
    - stdhttp roundtrip: stdlib ServeMux cannot register path wildcards
      starting with a digit like {1param} (#2306)
    
    Closes: #777, #1752
    Obsoletes: #1751, #2062
    
    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    
    * Update runtime and unstub tests
    
    Runtime 1.4.0 allows us to run almost all parameter tests.
    
    * Update all sub-modules runtime version
    
    * run go mod tidy in echo v5
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    mromaszewicz and claude authored Apr 20, 2026
    Configuration menu
    Copy the full SHA
    c209546 View commit details
    Browse the repository at this point in the history
Loading