Skip to content
mxHeadless
REST API gateway для headless-фронтендов на MODX 3. Ресурсы, объекты, OpenAPI, API keys и OAuth
  1. Компоненты
  2. mxHeadless
  3. Расширение
  4. Custom endpoints

Custom endpoints

ExtensionApi::registerEndpoint() добавляет маршруты вне generic /objects/{name}. Регистрация в bootstrap или на OnMxHeadlessRegister. См. обзор.

Базовая регистрация

php
$app->extension()->registerEndpoint(
    'newsletter.subscribe',
    ['POST'],
    '/newsletter/subscribe',
    static fn (ServerRequestInterface $request, array $params): array => [
        'data' => ['subscribed' => true],
    ],
    'newsletter.write',
    false,
);

Аргументы: имя маршрута, методы, path (от /v1), handler, scope, флаг public read.

Метаданные для catalog и OpenAPI

Опциональные аргументы попадают в GET /meta/endpoints и live OpenAPI:

php
use MxHeadless\Routing\RouteParameter;

$app->extension()->registerEndpoint(
    'newsletter.subscribe',
    ['POST'],
    '/newsletter/subscribe',
    $handler,
    'newsletter.write',
    false,
    [],
    'Подписка email на рассылку',
    ['Newsletter'],
    [
        new RouteParameter('email', 'query', true, 'Email подписчика', ['type' => 'string', 'format' => 'email']),
    ],
);

Path-параметры в {фигурных} выводятся автоматически. RouteParameter с тем же именем переопределяет inferred path param.

См. также