Files
responder/docs/source/backlog.md
T
kennethreitz df0d20d6cd Update docs for v4.1/v5, add Granian, and build out the sidebar
Modernize the documentation for the v4.1.0 + v5.0.0 releases and take it up
a notch across the board.

Content:
- Document v5 typed I/O (Query/Header/Cookie/Path markers, Pydantic body
  injection, return-annotation response_model), composable dependency
  injection, secure-by-default sessions, the deferred middleware stack, and
  type-hint-driven OpenAPI.
- Fix now-broken examples: req.method is uppercase; response_model=list (broke
  /schema.yml and /docs); SECRET_KEY -> RESPONDER_SECRET_KEY; the built-in
  middleware-order list; the "no return values" Flask claim; the abort()/
  before_request/exception_handler Quick Reference mappings.
- Add a Granian production-server section to the deployment guide alongside
  uvicorn (Rust, single dependency, HTTP/2, WebSockets).

Navigation & build:
- Render the v5 migration guide as a first-class docs page and fix the
  changelog link to resolve on GitHub and in Sphinx.
- Build out the alabaster sidebar: full cross-page navigation with captioned
  groups (User Guide / Tutorials / Reference / Project) and prev/next links;
  move guide-config into the User Guide.
- Fix the HTTPMethod docstring RST so it renders in the API reference.

Sphinx build is clean (0 warnings).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:46:35 -04:00

1.7 KiB

Backlog

A loose list of things we'd like to add. If one of these would make Responder better for you, an issue or pull request is very welcome — several make good first contributions. See {doc}sandbox to get a development environment going.

Future Ideas

  • First-class API client generation from the OpenAPI schema — turn the spec Responder already generates into a typed Python client.
  • Multipart (multiple-range) 206 responses — Responder already serves a single byte range (resp.file and resp.stream_file honor Range: bytes=... with a 206 and a Content-Range header); answering several ranges at once in one multipart/byteranges body is still open.
  • If-Range support for safe resumable downloads — revalidate a client's cached range against the current ETag / Last-Modified so a changed file restarts the transfer instead of stitching together stale bytes.
  • Richer path-parameter schemas in OpenAPI — path parameters are documented from their URL convertor today ({id:int} becomes an integer), so a segment typed only by a handler annotation or Path() marker — /users/{id} with id: int — or a {id:uuid} segment still shows up as a plain string.

Recently shipped

v5 delivered most of the original "document path parameters from their types" idea. The OpenAPI schema is now generated from each route's methods, body/response models, and Query / Header / Cookie markers, so routes appear even without a YAML docstring — and any docstring YAML is deep-merged on top as an override. Path parameters are documented from their URL convertor. See {doc}tour for the full type-driven OpenAPI story.