No project description provided
Project description
llsd-asgi
llsd-asgi
adds automatic LLSD content negotiation to ASGI applications
(Starlette, FastAPI, Quart, etc.) with a single line of code:
app.add_middleware(LLSDMiddleware)
The code for llsd-asgi
is based on msgpack-asgi, a similar middleware
library for the MessagePack binary format.
Installation
Install with pip:
pip install llsd-asgi
Quickstart (FastAPI)
You can use llsd-asgi
with FastAPI like so:
from fastapi import FastAPI
from llsd_asgi import LLSDMiddleware
app = FastAPI()
app.add_middleware(LLSDMiddleware)
Quickstart (Starlette)
As a lower level example using Starlette:
from llsd_asgi import LLSDMiddleware
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route
async def homepage(request):
return JSONResponse({"hello": "world"})
app = Starlette(debug=True, routes=[
Route('/', homepage),
])
# Wrap your application with the LLSD middleware
app = LLSDMiddleware(app)
How it works
flowchart TD
A(Client) <-->|LLSD| B(LLSDMiddleware)
B <-->|JSON| C(App)
Your ASGI application is wrapped around the LLSDMiddleware
, which performs
content negotiation based on Content-Type
and Accept
HTTP headers.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
llsd-asgi-0.0.1.tar.gz
(8.4 kB
view hashes)
Built Distribution
Close
Hashes for llsd_asgi-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 988918d50d9bdc2fd938ee19ecb7528f1e2b90d20875209caafe797beb4d5234 |
|
MD5 | 4d561c03cbdb11164ae13307f103b255 |
|
BLAKE2b-256 | bc29894fb16171a32282ba6a48d17bd53a8d4bd2170bc7772c11f1a1c871c4fb |