starlette-context 0.3.6

Creator: bradpython12

Last updated:

Add to Cart

Description:

starlettecontext 0.3.6

starlette context
Middleware for Starlette that allows you to store and access the context
data of a request. Can be used with logging so logs automatically use
request headers such as x-request-id or x-correlation-id.
Resources:

Source: https://github.com/tomwojcik/starlette-context
Documentation: https://starlette-context.readthedocs.io/
Changelog:
https://starlette-context.readthedocs.io/en/latest/changelog.html


Installation
$ pip install starlette-context


Requirements
Should be working fine on 3.7+.
Official support starts at 3.8.


Dependencies

starlette



Example
import uvicorn

from starlette.applications import Starlette
from starlette.middleware import Middleware
from starlette.requests import Request
from starlette.responses import JSONResponse

from starlette_context import context, plugins
from starlette_context.middleware import RawContextMiddleware

middleware = [
Middleware(
RawContextMiddleware,
plugins=(
plugins.RequestIdPlugin(),
plugins.CorrelationIdPlugin()
)
)
]

app = Starlette(middleware=middleware)


@app.route("/")
async def index(request: Request):
return JSONResponse(context.data)


uvicorn.run(app, host="0.0.0.0")
In this example the response contains a json with
{
"X-Correlation-ID":"5ca2f0b43115461bad07ccae5976a990",
"X-Request-ID":"21f8d52208ec44948d152dc49a713fdd"
}
Context can be updated and accessed at anytime if it’s created in the
middleware.


Sponsorship
A huge thank you to Adverity for
sponsoring the development of this OSS library in 2022.


Contribution
See the guide on read the
docs.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.