You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Port the FastAPI multi-step wizard recipe (#29) to the Litestar adapter: examples/litestar_wizard_example.py + a Litestar-specific "adapter notes"
section in docs/examples/wizard.md.
Why this should be low-effort
Litestar's HTTP adapter (adapters/litestar.py) mirrors the FastAPI
adapter's dispatch model almost exactly — one POST per registered component,
no built-in CSRF/session handling to design around. The ResumeWizard
component itself (schema-as-property, on_advance/on_back/on_submit)
is framework-agnostic and needs zero changes; only the routing glue and
template wiring differ. This should be close to a mechanical port, not a
new design.
Append a short "Litestar" subsection to docs/examples/wizard.md covering
anything that actually differs (route registration, any Litestar-specific
request parsing quirks) rather than duplicating the whole recipe.
Dependency
Same caveat as #29: the state round-trip is unsigned until Epic A1 (#21)
lands. No new CSRF gap here specifically (A4 already covers Litestar).
Sequencing
Do this after #29 lands. Suggested order: Litestar (this issue) → Django →
Flask, since Django and Flask need adapter-specific design (CSRF middleware,
CBV/FBV, session-backed state) that Litestar doesn't.
Summary
Port the FastAPI multi-step wizard recipe (#29) to the Litestar adapter:
examples/litestar_wizard_example.py+ a Litestar-specific "adapter notes"section in
docs/examples/wizard.md.Why this should be low-effort
Litestar's HTTP adapter (
adapters/litestar.py) mirrors the FastAPIadapter's dispatch model almost exactly — one POST per registered component,
no built-in CSRF/session handling to design around. The
ResumeWizardcomponent itself (schema-as-property,
on_advance/on_back/on_submit)is framework-agnostic and needs zero changes; only the routing glue and
template wiring differ. This should be close to a mechanical port, not a
new design.
Deliverable
examples/litestar_wizard_example.py— same 3-step scenario as Docs: multi-step wizard recipe + example for the FastAPI adapter #29,wired through the Litestar adapter.
docs/examples/wizard.mdcoveringanything that actually differs (route registration, any Litestar-specific
request parsing quirks) rather than duplicating the whole recipe.
Dependency
Same caveat as #29: the state round-trip is unsigned until Epic A1 (#21)
lands. No new CSRF gap here specifically (A4 already covers Litestar).
Sequencing
Do this after #29 lands. Suggested order: Litestar (this issue) → Django →
Flask, since Django and Flask need adapter-specific design (CSRF middleware,
CBV/FBV, session-backed state) that Litestar doesn't.