Skip to content

feat: header parameters - #8

Merged
dotkas merged 2 commits into
mainfrom
dotkas/header-params
Jun 30, 2026
Merged

feat: header parameters#8
dotkas merged 2 commits into
mainfrom
dotkas/header-params

Conversation

@dotkas

@dotkas dotkas commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds first-class support for OpenAPI in: header parameters in the axum server generator, lowering them into a typed per-operation headers struct extracted via a generated FromRequestParts implementation.

Changes:

  • Extend the server IR and lowering pipeline to collect header parameters (with reserved header-name filtering and explicit unsupported-case rejection).
  • Emit per-operation <Op>Headers structs plus FromRequestParts extractors and plumb them through generated handlers and Api trait method signatures.
  • Add fixtures + compile tests for header parameters and update the bookstore example + README to exercise/document the feature.

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
README.md Documents header-parameter support, behavior, and limitations.
examples/bookstore/tests/smoke.rs Updates example Api impl to accept generated CreateBookHeaders.
examples/bookstore/openapi.yaml Adds required Idempotency-Key header parameter to createBook.
examples/bookstore/generated/restapi.rs Regenerates example server code to include header extractor and updated trait/handler signature.
crates/oapi-codegen/tests/generated/server_header_params.rs Adds generated-code fixture demonstrating header struct + extractor output.
crates/oapi-codegen/tests/generated_compiles.rs Adds a compile test that ensures generated header extraction integrates with axum.
crates/oapi-codegen/tests/fixtures/server_unsupported_array_header_param.yaml Adds an unsupported-case fixture for array-typed header params.
crates/oapi-codegen/tests/fixtures/server_header_params.yaml Adds a supported header-params fixture including reserved header filtering.
crates/oapi-codegen/tests/coverage.rs Registers new fixtures in supported/unsupported coverage sets.
crates/oapi-codegen/src/paths.rs Lowers header params into IR with override/ignore rules and scalar-only validation.
crates/oapi-codegen/src/ir.rs Introduces IR types for per-operation headers and header parameters.
crates/oapi-codegen/src/emit.rs Emits header structs + FromRequestParts impls and wires them into trait/handlers.

Comment thread crates/oapi-codegen/src/emit.rs Outdated
@dotkas
dotkas merged commit 0ee1c02 into main Jun 30, 2026
5 checks passed
@dotkas
dotkas deleted the dotkas/header-params branch June 30, 2026 08:06
@dotkas dotkas removed the released label Jul 16, 2026
@alchemaxinc alchemaxinc deleted a comment from alchemax-housekeeper Bot Jul 16, 2026
@alchemax-housekeeper

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.0.0-dev.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@alchemax-housekeeper

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants