Skip to content
  1. Extras
  2. mxHeadless
  3. Extensions
  4. Registering objects

Registering objects

Register xPDO classes via ExtensionApi::registerObject on OnMxHeadlessRegister.

Minimum

php
$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.

Relations

php
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.

HTTP

Registered object is available at /api/v1/objects/{name}. See Objects API and live /schema.

See also