RABL, or Ruby API Builder Language, is a Ruby templating system for constructing structured API responses from application objects. It separates the underlying data model from the representation returned to API consumers. Templates use a Ruby DSL to select attributes, define custom nodes, nest child objects, and transform collections. Output formats include JSON, XML, MessagePack, BSON, and property lists. RABL integrates with Rails, Padrino, Sinatra, and other Tilt-compatible environments while remaining ORM-agnostic. Partials and template inheritance help reuse common representations and reduce duplicated API code. Configuration options also cover caching, root nodes, key formatting, conditional output, encoding engines, and direct rendering outside normal web views.
Features
- Ruby DSL for API response templates
- JSON, XML, BSON, MessagePack, and Plist output
- Nested objects and custom response nodes
- Template partials and inheritance
- Rails, Padrino, and Sinatra integration
- Configurable caching and serialization behavior