Выбрать курс
0  /  7

Rest API для БУС. Бэкенд мобильных приложений

Установка и настройка модуля

Модуль устанавливается стандартно, подробно об этом написано на сайте 1С-Битрикс -  установка модулей.

После установки модуля в дереве визуального редактора (Scoder - Rest API - Rest API для БУС) должен появится компонент - Rest API для БУС (scoder:api). Если у вас такого нет, то обновите кэш визуального редактора.

Параметры компонента:

  • Проверять АПИ ключ - не обязательный параметр. Используется если нужно обезопасить свое приложение, чтобы модуль отвечал только при совпадении АПИ ключа.
  • АПИ ключ - уникальный код, служит для проверки с ключом из внешнего источника, если не совпадает то вернет ошибку.
  • АПИ ключ с внешнего источника - в данный параметр необходимо указать код, который приходит из внешнего источника (приложения), должен совпадать с АПИ ключом, иначе модуль будет считать, что приложение не знакомо и вернет ошибку.
  • Включить поддержку ЧПУ - стандартный параметр для комплексного компонента, используется для включения/отключения режима ЧПУ компонента. Обязательно включить.
  • Каталог ЧПУ (относительно корня сайта) - стандартный параметр для комплексного компонента, рекомендуем оставить как есть, если включили поддержку ЧПУ.
  • Страница методов - стандартный параметр для комплексного компонента, рекомендуем оставить как есть, если включили поддержку ЧПУ.
Внимание! На нужной Вам странице размещать компонент настоятельно рекомендуем через административный интерфейс: Контент - Структура сайта - Файлы и папки. В публичной же части компонент начинает свою работу и исключает шапку и подвал, и возвращает данные в json.

Для уменьшения нагрузки на сайта и оптимальности работы приложения данную страницу рекомендуем создать в упрощенном виде, без визуальной части:

define('NO_AGENT_CHECK', true);
define("STOP_STATISTICS", true);

require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');

$APPLICATION->IncludeComponent(
	"scoder:api", 
	".default", 
	array(
		"CHECK_API_KEY" => "Y",
		"API_KEY" => "test",
		"API_KEY_REQUEST" => $_REQUEST["api_key"],
		"COMPONENT_TEMPLATE" => ".default",
		"SEF_MODE" => "Y",
		"SEF_FOLDER" => "/app/",
		"SEF_URL_TEMPLATES" => array(
			"index" => "#MODE#",
		)
	),
	false
);

К созданной Вами странице, где размещен компонент scoder:api, необходимо обращаться из приложения. Если вы разместили компонент на странице https://ваш_сайт/app/index.php и настроили его согласно примеру выше, то из приложения нужно обратиться к соответствующему методу, например, https://ваш_сайт/app/iblock.element.list и с нужными входящими параметрами, подробности по каждому методу читайте далее по докумнетации.

Тот или иной метод возвращает код страницы и результат выполнения команды или текст ошибки, если команда по какой либо причине не сработала.

Инфоблоки

Элементы инфоблока

Список элементов инфоблока

iblock.element.list - название метода. Возвращает список список элементов инфоблока согласно заданному параметру.

В качестве входного параметра может принимать параметры аналогичные методу  CIBlockElement::GetList.

Параметры:

  • order - объект полей для сортировки, по умолчанию {"ID":"ASC", "SORT":"ASC", "NAME": "ASC"}.
  • filter - объект полей для фильтра, по умолчанию {}.
  • group - объект полей для группировки, по умолчанию false.
  • nav - объект полей для постраничной навигации, по умолчанию false.
  • select - объект полей для возвращаемых полей, по умолчанию {}.

Например:


    "order": {"ID": "ASC"},
    "filter": {
        "IBLOCK_ID":ИД_ИНФОБЛОКА,
        "ACTIVE": "Y"
    },
    "nav":{"nTopCount": 2},
    "group":{},
    "select": ["ID","IBLOCK_ID","NAME"]
}


Пример из постмана:

iblock.element.list.jpg

Добавление элемента инфоблока

iblock.element.add - название метода. Добавляет элемент инфоблока согласно заданным параметрам.

В качестве входного параметра может принимать параметры аналогичные методу - CIBlockElement::Add.

Параметры:

  • fields - объект, содержащий значения полей элемента инфоблоков.
Например:

{    
   "fields": {
        "IBLOCK_ID":"ИД_ИНФОБЛОКА",
        "ACTIVE": "Активность, Y/N",
        "NAME": "Название элемента инфоблока",
        "CODE": "Символьный код элемента инфоблока"
    }
}

Пример из Постмана:

postman.iblock.element.add.jpg

Редактирование элемента инфоблока

iblock.element.update - название метода. Редактирует элемент инфоблока согласно заданным параметрам.

В качестве входного параметра может принимать параметры аналогичные методу - CIBlockElement::Update.

Параметры:

  • id - ид редактируемого элемента инфоблока.
  • fields - объект, содержащий значения полей элемента инфоблоков.
Например:

{    
    "id": "ИД_ЭЛЕМЕНТА_ИНФОБЛОКА",
    "fields": {
        "IBLOCK_ID":"ИД_ИНФОБЛОКА",
        "ACTIVE": "Активность, Y/N",
        "NAME": "Название элемента инфоблока",
        "CODE": "Символьный код элемента инфоблока"
    }
}

Пример из Постмана:

postman.iblock.element.update.jpg

Удаление элемента инфоблока

iblock.element.update - название метода. Редактирует элемент инфоблока согласно заданным параметрам.

В качестве входного параметра может принимать параметры аналогичные методу - CIBlockElement::Update.

Параметры:

  • id - ид удаляемого элемента инфоблока.
Например:

{    
    "id": "ИД_ЭЛЕМЕНТА_ИНФОБЛОКА",
}

Пример из Постмана:

postman.iblock.element.delete.jpg