Общая информация

REST API является простым интерфейсом управления информацией без использования каких-либо дополнительных внутренних прослоек.

Адрес REST-интерфейса

Интерфейс размещается по адресу https://вашсайт/api/, затем указывается версия API, например, https://вашсайт/api/v1.1/.

Версии интерфейса v1 и v1.0 являются синонимами, последняя версия интерфейса 1.1.

Авторизация

Авторизация реализована с использованием токенов, выдаваемых сотруднику через центр администрирования. Токен имеет статус активности, дату начала и дату окончания действия (опционально).

В HTTP-заголовке Authorization указывается токен в формате "Bearer {token}", например:

Authorization: Bearer 615e0465f7c8005b6bbfd00876dfbab9

При авторизации с ошибочным токеном реализована задержка авторизации. После 6 попыток ошибочного доступа осуществляется блокировка доступа IP-адреса с маской подсети "/24" через модуль IP-адреса.

Особенности авторизации в режиме CGI/FastCGI

В режиме CGI и Apache 2.4.13 и старше для включения передачи заголовка Authorization внесите в .htaccess директиву

CGIPassAuth On

В более ранних версиях Apache внесите в .htaccess после RewriteBase /

RewriteCond %{HTTP:Authorization} .+
RewriteCond %{REQUEST_URI} ^/api.*
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Формат ответа

По умолчанию используется JSON, вы можете его явно указать в HTTP-заголовке запроса

Content-Type: application/json

Допускается использование XML, в этом случае укажите

Content-Type: application/xml

Виды запросов

Выборка ресурсов с использованием метода GET

Название ресурса указывается в множественном числе, например shops, informationsystem_items, sites и тп., соответствует названию таблицы или названию модели в множественном числе. Связи используют дочерние объекты, заданные в свойстве $_hasMany модели, для которой используется связь. Список ресурсов с примерами доступен по ссылке.

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

  • Без темы

    Для метода PUT доступно только изменение одной конкретной записи? Можно ли изменить сразу несколько по значению первичного ключа, к примеру?

    22.06.2022 15:57:04
    lezhenkin

    Без темы

    Значений изменить можно несколько, но у одного элемента!

    22.06.2022 16:02:27
    hostcms

    Без темы

    То есть методом PUT обратиться за изменением записей можно только для одного элемента, указав его конкретный идентификатор в строке адреса? Обратиться сразу к нескольким, добавив условия отбора, нельзя?

    22.06.2022 16:08:07
    lezhenkin

    Без темы

    Вы можете выбрать несколько элементов с фильтрацией, пример дан выше, а изменение PUT-запросом только одного элемента.

    22.06.2022 16:11:53
    hostcms
  • Без темы

    Правильно ли я понимаю, что это доступно только сотрудникам-администраторам?

    21.06.2022 21:57:47
    lezhenkin

    Без темы

    REST-запросы доступны из клиентского раздела при указании токена, см. https://www.hostcms.ru/documentation/modules/restapi/add-token/ 

    Сотрудники-администраторы выдают только токены.

    21.06.2022 22:00:41
    hostcms

    Без темы

    Я имел в виду другое. До тех пор, пока токен не был выдан пользователю с правами администратора, запрос к REST API возвращал сообщение с ошибкой о запрете доступа.

    22.06.2022 14:32:30
    lezhenkin

    Без темы

    Запрет не пользователю, запрет на запросы без правильного токена.

    22.06.2022 14:37:14
    hostcms

    Без темы

    Сам токен я не менял. Для одного и того же токена выбирал пользователя-администратора или обычного. Для обычного доступ к информации закрыт.

    22.06.2022 15:10:09
    lezhenkin

    Без темы

    Пользователь должен быть не read_only (только чтение) и не dismissed (уволен).

    22.06.2022 15:17:41
    hostcms