mxHeadless
REST API gateway для headless-фронтендов на MODX 3. Ресурсы, объекты, OpenAPI, API keys и OAuth

ExtensionApi::registerEndpoint() добавляет маршруты вне generic /objects/{name}. Регистрация в bootstrap или на OnMxHeadlessRegister. См. обзор.
$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.
Опциональные аргументы попадают в GET /meta/endpoints и live OpenAPI:
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.