Перейти к основному содержимому

send()

Описание

Отправляет необходимый HTTP-запрос на сервер и возвращает promise с данными или без них в зависимости от запроса

Все запросы к серверу выполняются с помощью метода send(), который является частью сервиса RestDataProvider.

Использование

send(
url: string,
method: "GET" | "POST" | "PUT" | "DELETE" | string,
data?: object,
headers?: object,
): promise;

Параметры

ИмяТипОписание
urlstringОбязательный. Путь к серверу, на который отправляется запрос.
methodstringОбязательный. Тип HTTP-метода (GET, POST, PUT, DELETE).
dataobjectНеобязательный. Параметры, отправляемые на сервер. По умолчанию отправляются параметры из срабатывающего события. Вы можете добавить дополнительные параметры с помощью пользовательского объекта. См. Пример ниже.
headersobjectНеобязательный. Заголовок по умолчанию — Content-Type с значением application/json. Дополнительные заголовки можно добавить через параметр customHeaders. См. Пример ниже.

Ответ

Метод возвращает объект promise с данными или без них, в зависимости от запроса.

Promise возвращается при успешном статусе запроса. В случае неудачного запроса клиент выбрасывает ошибку.

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

restDataProvider.send(url, method, data)
.then(data => {
... // успех: обработать данные
})
.catch(err => {
... // обработчик ошибок
});

Примеры

Ниже приведён пример, как отправить запрос с дополнительными параметрами помимо стандартных:

const url = "https://some_backend_url";
const restProvider = new kanban.RestDataProvider(url);

Promise.all([
restProvider.getCards(),
restProvider.getColumns()
]).then(([cards, columns]) => {
const board = new kanban.Kanban("#root", {
cards,
columns,
// параметры конфигурации
});

board.api.on("add-card", obj => {
obj.custom = "custom prop";
restProvider.send(`cards`, "POST", obj).then(data => {
board.api.parse({ cards: data });
return Promise.resolve();
});
});

board.api.setNext(restProvider);
});

Следующие примеры показывают, как добавить дополнительные заголовки в метод send().

const customHeaders = {
"Authorization": "Bearer",
"Custom header": "some value",
};

board.api.on("add-cards", obj => {
restDataProvider.send("cards", "POST", obj, customHeaders);
});

Или вы можете добавить заголовки, переопределив RestDataProvider, что даст вам больше контроля над данными, которые вы отправляете на сервер:

const url = "https://some_backend_url";

class MyDataProvider extends RestDataProvider {
send(url, method, data, headers) {
headers = { ...headers, "SomeToken": "abc" };
return super.send(url, method, data, headers);
}
}

board.api.setNext(new MyDataProvider(url));

Связанные статьи: Работа с сервером