Skip to content

Fix Path<T> parameter generation for simple types in OpenAPI#21

Merged
Kilerd merged 3 commits into
mainfrom
fix-path-params-openapi-generation
Feb 4, 2026
Merged

Fix Path<T> parameter generation for simple types in OpenAPI#21
Kilerd merged 3 commits into
mainfrom
fix-path-params-openapi-generation

Conversation

@Kilerd
Copy link
Copy Markdown
Owner

@Kilerd Kilerd commented Feb 4, 2026

Problem

When using Path<T> with simple types like Uuid (e.g., Path(user_id): Path<Uuid>), the path parameter was not being included in the generated OpenAPI JSON.

Solution

Updated the Path<T> ParameterProvider implementation to handle both struct types with properties and simple types. For simple types, the implementation now extracts the parameter name from the URL pattern and generates the appropriate OpenAPI parameter.

Testing

Added comprehensive tests covering:

  • Path<Uuid> (simple type)
  • Path<(Uuid,)> (tuple syntax)
  • Path<(Uuid, String)> (multiple parameters)

All tests pass successfully.

When using Path<T> with simple types like Uuid (e.g., Path(user_id): Path<Uuid>),
the OpenAPI parameter was not being generated correctly because the implementation
only handled structs with properties.

This fix updates the Path<T> ParameterProvider implementation to handle both:
1. Structs with properties (existing behavior)
2. Simple types like Uuid, String, i32, etc. (new behavior)

For simple types, it now extracts the parameter name from the URL pattern and
generates the appropriate OpenAPI parameter.

Added comprehensive tests to verify the fix works for:
- Path<Uuid> (simple type)
- Path<(Uuid,)> (tuple syntax)
- Path<(Uuid, String)> (multiple parameters)
The example was mainly for verification purposes. The test suite in
gotcha/tests/test_path_params.rs is sufficient to validate the fix.
@Kilerd Kilerd merged commit 3a4fc83 into main Feb 4, 2026
2 of 5 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.

1 participant