Skip to content

Declare a middleware's OpenAPI parameters per operation (0.15.3) - #85

Merged
velis74 merged 1 commit into
mainfrom
openapi-parameters-for
Nov 12, 2026
Merged

velis74 merged 1 commit into
mainfrom
openapi-parameters-for

Conversation

@velis74

@velis74 velis74 commented Nov 12, 2026

Copy link
Copy Markdown
Contributor

Adds Middleware.openapi_parameters_for(viewset, action, configuration). route_viewset calls it for each operation it routes, with the middleware's @action_configuration value for that action (ByAction resolved); it returns openapi_parameters. A middleware that does not read its value on some operations (e.g. configured False, or a viewset of its own package) overrides it and returns nothing for them. A function middleware's openapi_parameters attribute still applies to every operation.

Needed by taskwire: TaskwireMiddleware declares X-Taskwire-Token, but calls to taskwire's own viewset are never tracked, so the header does not belong on those operations. Without this, taskwire removes its middleware from settings.viewsets_command_middleware while its viewset is routed (velis74/taskwire#33).

Docs (command middleware guide, route_viewset reference) and CHANGELOG updated; version 0.15.3 for both packages.

@github-actions

Copy link
Copy Markdown

✅ Incremental coverage — 100%

████████████████████ 17 / 17 changed lines covered · threshold 70% · main → openapi-parameters-for

File Coverage Covered Uncovered lines
✅ fastapi_viewsets/decorators/route_viewset.py 100% 6 / 6 —
✅ fastapi_viewsets/middleware/__init__.py 100% 11 / 11 —
Total 100% 17 / 17
8 files not graded (1 ignored by pattern, 7 not source files)
File Reason
changelog.md not a source file
docs/api/route-viewset.md not a source file
docs/guide/command-middleware.md not a source file
fastapi_viewsets/openapi_descriptions_test.py ignored by *_test.py
package-lock.json not a source file
package.json not a source file
pyproject.toml not a source file
uv.lock not a source file

Coverage reports: coverage.json (coverage.py, 69 files) · coverage/clover.xml (clover, 13 files) — incremental-coverage-check v3.0.0

@velis74
velis74 merged commit d58dfdd into main Nov 12, 2026
6 checks passed
@velis74
velis74 deleted the openapi-parameters-for branch November 12, 2026 20:05
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