mirror of
https://github.com/kennethreitz/responder.git
synced 2026-07-21 18:39:29 +00:00
df0d20d6cd
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>
1.7 KiB
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)
206responses — Responder already serves a single byte range (resp.fileandresp.stream_filehonorRange: bytes=...with a206and aContent-Rangeheader); answering several ranges at once in onemultipart/byterangesbody is still open. If-Rangesupport for safe resumable downloads — revalidate a client's cached range against the currentETag/Last-Modifiedso 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 orPath()marker —/users/{id}withid: 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.