Предыдущая статья курса: Работа с данными платформы. API
Общая информация
Для работы с запросами ко внешним системам, в платформе Эра предусмотрен специализированный утилитарный класс EraRequest.
Данный класс имеет набор методов для осуществления различных запросов (get, post, put и т.д.), а так же методом request, который позволяет тонко настроить запрос под необходимости разработчика.
Пример выполнения запроса во внешнюю систему:
import { GlobalUtils, Converter, EraRequest } from "./../../utils";
import { Service } from "./../../platform/core";
import { ITicket, ITickets } from "../model";
import { Tickets } from "../classes";
import { IBaseEntity, IDataUpdateParams } from "../../base/model";
class Server2Service extends Service {
private _tickets: ITickets; //свойство класса, через которое мы будем доступаться к коллекции Tickets
constructor() {
super("creomate_tutorial.Server2Service");
// onCreateCode
this._tickets = new Tickets(this.context); //инициализируем коллекцию Tickets
this.load();
}
async sendPOSTRequest(id: string, status:string){
const result = await EraRequest.request({
method: "POST",
url: "https://example.com/api/v1/request",
contentType:"application/json",
data: {
objectId: id,
statusId: status
},
timeout: 300
});
const ResultObject = result?.response
}
}
export default Server2Service;
Получение данных из параметров системы

Одна из частых задач - это хранение различных данных для работы интеграции в параметрах системы, для возможности быстрого редактирования. Как правило это различные URL'ы, ключи, токены доступа и т.д.

Для хранения таких настроек, в приложении Администратор платформы существуют разделы "Параметры системы" и "Параметры проекта".
В параметрах системы хранятся все системные настройки, их набор изменить нельзя, однако можно использовать эти параметры в своём коде.
В параметрах проекта можно создавать любые собственные настройки. Главное условие - название не должно совпадать с другим проектным или системным параметром. Хороший тон - добавлять префикс в виде названия вашего пакета к имени такого параметра.
Важно понимать, что эти параметры не привязываются к какому либо пакету и при переносе пакета на другую среду, их необходимо будет создать повторно. Есть возможность создать фиксчу (фиксированые данные) пакета, которые будут автоматически добавлять необходимые параметры при активации пакета на новой среде. Функционал фиксч будет рассмотрен далее в рамках этого курса.
Для получения значений параметров, используется утилитарный класс PlatformServices, распологающийся в папке platform/core.
В классе PlatformServices присутствует свойство settings, реализующее несколько методов для получения значений параметров:
- getSettingByName - Позволяет получить значение любого параметра по имени
- getProjectSettingByName - Позволяет получить значение проектного параметра по имени
- getUserSettingByName - Позволяет получить значение пользовательского параметра по имени
Пользовательские параметры:
TODO/////
Пример получения URL для исполнения запроса из параметров:
import { GlobalUtils, Converter, EraRequest } from "./../../utils";
import { PlatformServices, Service } from "./../../platform/core";
import { ITicket, ITickets } from "../model";
import { Tickets } from "../classes";
import { IBaseEntity, IDataUpdateParams } from "../../base/model";
import { EraEnvironment } from "../../../lowlevel";
class Server2Service extends Service {
private _tickets: ITickets; //свойство класса, через которое мы будем доступаться к коллекции Tickets
constructor() {
super("creomate_tutorial.Server2Service");
// onCreateCode
this._tickets = new Tickets(this.context); //инициализируем коллекцию Tickets
this.load();
}
async sendPOSTRequest(id: string, status:string){
const URL = PlatformServices.settings.getSettingByName("creomate_tutorial.integration.url");
const result = await EraRequest.request({
method: "POST",
url: URL,
contentType:"application/json",
data: {
objectId: id,
statusId: status
},
timeout: 300
});
const ResultObject = result?.response
}
}
export default Server2Service;
Следующая статья курса: Задание 10. Обработка данных
Предыдущая статья курса: Работа с данными платформы. API