Content Renderers¶
Built-in Renderers¶
JSONRenderer ¶
Bases: ContentRenderer
JSON content renderer.
HTMLRenderer ¶
Bases: ContentRenderer
HTML content renderer with Jinja2 template support.
PlainTextRenderer ¶
Bases: ContentRenderer
Plain text content renderer.
ContentRenderer Base Class¶
ContentRenderer ¶
Overview¶
Content renderers convert response data into different formats based on the client's Accept
header. RestMachine includes built-in renderers for JSON, HTML, and plain text.
Custom Renderers¶
Register custom renderers for specific content types:
@app.content_renderer("application/xml")
def render_xml(data):
"""Render data as XML."""
return f"<result>{data}</result>"
@app.get('/data')
def get_data():
return {"key": "value"}
# Returns JSON or XML based on Accept header
See Also¶
- Content Negotiation Guide - Complete guide
- Application API - Register renderers