mxHeadless
REST API gateway for headless frontends on MODX 3. Resources, objects, OpenAPI, API keys, and OAuth

Register xPDO classes via ExtensionApi::registerObject on OnMxHeadlessRegister.
$api->registerObject(
\MxHeadless\Definition\ObjectDefinition::create('products')
->setName('products')
->class(\MiniShop3\Model\msProduct::class)
->fields(['id', 'pagetitle', 'price'])
->filterable(['id', 'parent', 'price'])
->sorts(['id', 'price'])
->readable()
);After freeze, late registration throws RegistryFrozenException.
use MxHeadless\Definition\RelationDefinition;
$api->registerRelation('products', RelationDefinition::create('category')
->to('categories')
->toOne()
->foreignKeyField('parent')
->fields(['id', 'pagetitle'])
);Types: to_one, to_many (paginated batch load). Client requests ?include=category.
Registered object is available at /api/v1/objects/{name}. See Objects API and live /schema.