Перейти к основному содержимому
Версия: 1.21.3

Примеры настроек REST API

Чтобы ознакомиться с примерами настроек REST API, скачайте пакет [SOC] - Scripted REST API и импортируйте его на свой экземпляр.

Пример 1. Получение значения системного свойства без авторизации


Для проверки примера:

  1. Перейдите на главную страницу экземпляра.
  2. Добавьте в адресную строку: /v1/api/c_simple/api_module_path/api_action_path?param_1=value_1.
  3. Скопируйте полученное значение адреса.
  4. Перейдите по полученному адресу в режиме инкогнито.

В результате вы получите ответ на действие API /record/sys_api_action/164054047017513732 со значением системного свойства simple.auth_page.support_phone.

Пример 2. Создание записи задачи с вложением


Для проверки примера:

  1. Перейдите на запись /record/sys_script/164053985417710860.
  2. Нажмите Запустить, чтобы запустить скрипт.

В результате вы получите ответ на действие API /record/sys_api_action/161831494014244852.

Внизу формы скрипта будет указана ссылка на созданную запись Задачи:

К созданной записи Задачи будет прикреплено 2 вложения – base64 файлы, переданные на 14 и 15 строках скрипта:

Пример 3. Cоздание вложений


Вы можете создавать вложения при помощи настроек REST API. Файлы передаются в формате base64. Для получения файлов в этом формате используйте метод readBase64(attachmentId).

Чтобы создать вложение при помощи настроек REST API:

  1. Создайте действие API для обработки POST-запросов с содержимым вложений.

    Пример скрипта для действия API
    (function (request, response) {
    const data = request.getBody();
    const TABLE_ID = data.table_id;
    const RECORD_ID = data.record_id;
    const RECORD_DOC_ID = ss.getDocIdByIds(TABLE_ID, RECORD_ID);
    const attachments = data.attachments;
    const simpleAttach = new SimpleAttachment();
    let createdAttachmentIds = [];
    Object.keys(attachments).forEach(attachment => {
    reatedAttachmentIds.push(simpleAttach.writeBase64(RECORD_DOC_ID, ...attachments[attachment]));
    });
    response.setBody(createdAttachmentIds);

    }) (SimpleApiRequest, SimpleApiResponse)
  2. Cоздайте скрипт для отправки запросов.

    Пример скрипта для отправки POST-запроса
    const API_ACTION_URL = ''; // https://docs.simpleone.ru/display/SAPI/Configuring+Scripted+REST+API#ConfiguringScriptedRESTAPI-ScriptedRESTAPIURIs

    const payloadRequest = sws.restRequestV1();
    payloadRequest.setRequestUrl(API_ACTION_URL);
    payloadRequest.setRequestMethod('POST');
    payloadRequest.setRequestHeader('Content-type', 'application/json');
    const payload = {
    table_id: '155931135900000084', // user table ID
    record_id: '155931135900000001', // admin record ID
    record attachments: {
    1: ['file_example.gif', 'R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=', 'image/gif']
    }
    }

    payloadRequest.setRequestBody(JSON.stringify(payload));
    const response = payloadRequest.execute().getBody();
    print('Response: ' + response);

Больше информации о настройках в статье Настройки REST API article.

Особенности работы и рекомендации


  1. Скрипт действия API выполняется без учета правил контроля доступа (ACL).
  2. Авторизация запросов к Scripted REST API невозможна через базовую авторизацию Basic Auth. Для авторизации используйте решение, описанное в разделе Авторизация.
  3. Если в ответе на действие API содержится ключ error со значением Undefined index: SimpleApiResponse – в скрипте действия API допущена ошибка. Перейдите в список исключений через навигатор в Системный журнал → Журнал исключений и изучите первые записи.
  4. Приведите данные, передаваемые JSON, к типу String при помощи метода JSON.stringify(), чтобы избежать искажения данных:

5. Если скрипт действия API выполняется дольше допустимого времени ожидания, вынесите часть скрипта в Скрипты действий для событий (sys_event_script_action) и вызовите системное событие из скрипта действия API.