Magnolia's modern delivery system is highly customizable. Instead of just the one delivery API, like most Headless CMS, you configure whichever delivery API's you need. You control what content types are returned, what relationships are resolved, the depth of child nodes to return - all with simple YAML configuration files.
Magnolia's content lives in trees as well as lists, and the delivery API fully takes advantage of this. There are two key ways to access configured endpoints:
Given the path to a node, this interface returns that node and all its children (and further decendents), in their 'natural order', to the configured depth.
When 1 or more query parameters are included in the request, then all matching results are returned, following any requested ordering parameters.
Content items often reference other content items. For example multiple
book items could reference an
author item. The delivery endpoints can be configured to also return this referenced content all in one request!
To avoid returning too much content, you need to configure each property which should "resolve" (or "get") its referenced content.