Return a Response Directly
Returning a Response Object
Section titled “Returning a Response Object”For full control over the response, return a Response object:
from starlette.responses import JSONResponsefrom justapi import JustAPIApp
app = JustAPIApp()
@app.get("/custom")def custom_response(): return JSONResponse( content={"message": "custom response"}, status_code=202, headers={"X-Custom-Header": "value"}, )Response Classes
Section titled “Response Classes”| Class | Use Case |
|---|---|
JSONResponse |
JSON response with custom headers |
HTMLResponse |
HTML content |
PlainTextResponse |
Plain text |
RedirectResponse |
Redirect to another URL |
StreamingResponse |
Streaming data |
FileResponse |
Serve a file |
Headers
Section titled “Headers”Set custom headers on any response:
@app.get("/with-headers")def with_headers(): return JSONResponse( content={"data": "value"}, headers={"X-Request-Id": "abc-123", "Cache-Control": "no-cache"}, )Redirect
Section titled “Redirect”from starlette.responses import RedirectResponse
@app.get("/old-path")def old_path(): return RedirectResponse(url="/new-path")
@app.get("/new-path")def new_path(): return {"message": "you are here"}See Also
Section titled “See Also”- Custom Response Classes — HTML, stream, file responses
- Response Status Code — status codes
- Response Cookies & Headers — cookies and headers