44  /  48

Работа с REST API

Просмотров: 30216
Дата последнего изменения: 24.09.2021
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5

Как упростить работу с REST API ?

Наша библиотека CRest @bitrix/crest — небольшой PHP SDK для использования REST API Битрикс24 в локальных, тиражных приложениях или через вебхуки. облегчает вхождение в работу с REST API - сама продлевает токены, сохраняет себе токены и т.п. Всё, что нужно сделать на старте - скачать и настроить, как рекомендовано здесь. Это занимает считанные минуты.

Но начинающим разработчикам может быть сложно понять, что происходит, если они столкнутся с неправильной настройкой сервера или какими-то другими проблемами. Мы постарались учесть в нашем SDK SDK (от англ. software development kit) — набор средств разработки, который позволяет специалистам по программному обеспечению создавать приложения для определённого пакета программ, программного обеспечения базовых средств разработки, аппаратной платформы, компьютерной системы, игровых консолей, операционных систем и прочих платформ.
Программист, как правило, получает SDK непосредственно от разработчика целевой технологии или системы. Часто SDK распространяется через Интернет. Многие SDK распространяются бесплатно для того, чтобы побудить разработчиков использовать данную технологию или платформу.
базовые ошибки настройки сервера, такие, как работа с URL, достаточность прав в папке, где расположена библиотека. Нужно открыть файл checkserver.php и он вам подскажет, какие донастройки необходимы.

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

Если же в сценарии вашего приложения нужно использовать токены пользователя, который открыл приложение, то вам нужно будет переопределить единственный метод - getSettingData.

Допустим, вы открываете встройку. В реквесте придут токены текущего пользователя. Отнаследовав класс CRest и переопределив его, вы начнете использовать новый класс CRestCurrent и сможете работать с токенами текущего пользователя - того, который в данный момент использует ваше приложение.

veb5.jpg

Но нужно учитывать, что токены приходят не всегда и не везде. Для решения этой проблемы выпущена функция setDataExt. Она позволяет в случае, когда у вас используется, например, библиотека под cron и вам жизненно необходимо использовать токен текущего пользователя. Вы можете этот токен где-то у себя сохранить и, когда нужно, через метод $dataExt подставить в класс CRestCurrent. Тогда библиотека будет на этом хите использовать токен пользователя, который вы подставили.

После этой небольшой доработки вы можете использовать новый класс, вызывать метод call и получить, допустим, через user.current информацию о текущем пользователе на портале и делать все, что необходимо, с его данными.

veb6.jpg

Этот код можно изучить по ссылке Работа с SDK CRest в контексте пользователя.

Если попытаться использовать наш SDK CRest для тиражных решений, то можно столкнуться с тем, что базовая работа этого класса возможно только с одним порталом. Это сделано умышленно, чтобы на старте разработчикам не нужно было думать о том, как хранить разные токены или донастраивать MySQL.

Но используя небольшие доработки, можно быстро перейти к тиражной разработке.

Пример - мы можем отнаследовать класс CRest и, переопределив 2 метода veb7.jpg getSettingData и setSettingData, подставлять в наш класс нужные токены данного портала, и забирать их:

Посмотреть код подробнее и почитать его обсуждение можно на портале для разработчиков https://dev.bitrix24.ru/company/personal/user/4066/blog/3251/. Предварительно нужно будет зарегистрироваться.



0
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии
Доступна новая документация по REST: понятнее описания, больше примеров, удобнее поиск
Перейти