Модуль, реализующий расширяемый API на GraphQL в БУС.
Требует PHP 7.1 или выше и Composer.
Является зависимостью bx-inspector.
Помимо стандартных плюсов и минусов GraphQL по сравнению с, например, SOAP или JSON-RPC, модуль предоставляет фасады для методов библиотеки machaon/std
, позволяющие элементарно реализовывать защищенный и типобезопасный двухсторонний обмен данными между различными площадками.
Например, это - локальный getList()
:
$rows = \Machaon\Std\IBlock\Element\Query::getList([
"filter" => [
"IBLOCK_ID" => 1,
"ACTIVE" => "Y",
"!PROPERTY_FLAG" => false,
],
"page" => [
"limit" => 10,
],
]);
А это - удалённый:
$rows = \WJS\API\Facade\Machaon\Std\IBlock\Element\Query::getList([
"filter" => [
"IBLOCK_ID" => 1,
"ACTIVE" => "Y",
"!PROPERTY_FLAG" => false,
],
"page" => [
"limit" => 10,
],
"endpoint" => [
"url" => "http://host",
"login" => "username",
"password" => 'pa$$w0rd',
],
]);
Схема GraphQL и набор фасадов будут расширяться по мере необходимости.
Находясь в bitrix/modules
, вводим в терминале:
mkdir wjs.api && cd wjs.api && curl -L https://github.com/whiskyjs/bx-graphql-api/tarball/develop | tar xz && tmpdir=$(find . -maxdepth 1 -type d -name '[^.]?*' -printf %f -quit) && shopt -s dotglob && mv $tmpdir/* . && rmdir $tmpdir && composer install
Затем обычная установка через админку. Появится страница с опциями и GraphQL-запросом.
Apache 2.0.