Skip to content

Using the Request Directly

Any handler can receive the raw Request object as a parameter:

from starlette.requests import Request
from justapi import JustAPIApp
app = JustAPIApp()
@app.get("/info")
def get_info(request: Request):
return {
"method": request.method,
"url": str(request.url),
"client": request.client.host if request.client else None,
}
@app.get("/headers")
def get_headers(request: Request):
return {
"user_agent": request.headers.get("user-agent"),
"accept": request.headers.get("accept"),
"authorization": request.headers.get("authorization", "none"),
}
@app.post("/raw-body")
async def raw_body(request: Request):
body = await request.body()
return {"size": len(body), "content": body.decode()}
@app.get("/request-info")
def request_info(request: Request):
return {
"path": request.url.path,
"query": str(request.query_params),
"path_params": dict(request.path_params),
}