Skip to main content

Opinionated FastAPI Extended Route

A small utility for FastAPI/Starlette Route and Request to address the following:

  • Request.url_for doesn't allow adding query parameters at the moment.
  • URL objects can't have multiple keys like /?key=value&key=anothervalue.

With the following changes:

  • Make Request.url_for to match path parameters and use unmatched params for query parameters.
  • Provide a custom Route which has a new Request type.
  • Allow URL object to add multiple keys in query params.
  • ...

Example:

from fastapi import FastAPI
from fastapi.responses import PlainTextResponse

from fastapi_extended_route import Request, Route

def index(request: Request) -> PlainTextResponse:
    url = request.url_for("index", key=value)
    # url == "http://testserver/?key=value"
    return PlainTextResponse(url)

app = FastAPI(
    routes=[Route("/", index, name="index")],
)

As you can see the only change is to use Route from the package and the new Request object will have a customized url_for method which handles both path parameters and query parameters.

If/when these options are available in Starlette/FastAPI, this is no longer needed.

Metadata

Release files for fastapi-extended-route 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi-extended-route 0.1.0
File Size Uploaded
fastapi_extended_route-0.1.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi-extended-route 0.1.0
File Interpreter ABI Platform
fastapi_extended_route-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 kB

Release files / fastapi_extended_route-0.1.0.tar.gz

Download URL fastapi_extended_route-0.1.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0e73998e14696f5433f1061834a5ac8c04c9e88a87198746d78206c1f1332380
BLAKE2b-256 checksum
How to use checksums
ae6cfa29cecf644827a4628f4d8aca907697f28d3d023f997fa1e7c2e81f1466
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release files / fastapi_extended_route-0.1.0-py3-none-any.whl

Download URL fastapi_extended_route-0.1.0-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02c8de0265aa045442ef204e11f77797bbddd63bf8b3e867696da971f279a818
BLAKE2b-256 checksum
How to use checksums
429002a9f4d2f5ba8e88d73898b943857740cf9d3c3646ab6d18318edc796d70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page