Skip to content

feat(gen): add x-ogen-name extension for parameter naming#1594

Merged
ernado merged 1 commit intoogen-go:mainfrom
lanej:feature/x-ogen-name-parameters
Nov 30, 2025
Merged

feat(gen): add x-ogen-name extension for parameter naming#1594
ernado merged 1 commit intoogen-go:mainfrom
lanej:feature/x-ogen-name-parameters

Conversation

@lanej
Copy link
Contributor

@lanej lanej commented Nov 29, 2025

Summary

Adds support for the x-ogen-name extension on OpenAPI parameters, allowing developers to customize the Go field name in generated parameter structs independently of the OpenAPI parameter name. This provides consistent naming control across schemas and parameters.

Fixes #1593

Changes

  • Add XOgenName field to openapi.Parameter struct for storing custom names
  • Parse and validate x-ogen-name extension in parameter parsing (must be valid exported Go identifier)
  • Use x-ogen-name value when generating parameter struct field names
  • Add positive test spec with path, query, and header parameter examples
  • Add negative test specs for invalid/unexported identifiers
  • Add integration test verifying custom parameter names work correctly

API Example

Before:

parameters:
  - name: pickuptype
    in: path
    schema:
      type: string
type MyOperationParams struct {
    Pickuptype string  // Auto-generated from "pickuptype"
}

After:

parameters:
  - name: pickuptype
    in: path
    x-ogen-name: CancelBy
    schema:
      type: string
type MyOperationParams struct {
    CancelBy string  // Uses custom x-ogen-name value
}

Testing

  • Integration test validates custom names for path, query, and header parameters
  • Parser tests verify invalid identifiers and unexported names are rejected
  • Generated code compiles and type-checks correctly
  • Mirrors existing x-ogen-name behavior for schemas

Add support for the x-ogen-name extension on OpenAPI parameters, allowing
users to customize Go struct field names independently of the OpenAPI
parameter name. This mirrors the existing x-ogen-name functionality for
schema types.

Changes:
- Add XOgenName field to openapi.Parameter struct
- Parse x-ogen-name extension in parse_parameter.go with Go identifier
  validation (must be valid and exported)
- Use XOgenName in gen_parameters.go for Go field naming
- Add positive and negative test cases
- Add integration test with generated code

Closes ogen-go#1593
@ernado ernado merged commit 894cc34 into ogen-go:main Nov 30, 2025
15 checks 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.

Feature request: x-ogen-name extension for parameters

2 participants