Может я что то не правильно понял.
На вкладке с турбо-страницами написано
Загрузка через API
Для крупных сайтов. Пакетная загрузка. До 10 000 элементов item в каждой задаче, до 10 задач одновременно.
Как это понял я: получаем ссылку на api, генерируем XML с полями item и пушим всем скопом их методом POST по предоставленной ссылке. Я прав, или нет?
Начал процесс по получению ссылки, тут все ок, все сделал.
Выдернул из базы данных 10 документов и сформировал из них XML
function getItemsXML(request) {
return xml = `<?xml version="1.0" encoding="UTF-8"?><rss xmlns:yandex="http://news.yandex.ru" xmlns:media="http://search.yahoo.com/mrss/" xmlns:turbo="http://turbo.yandex.ru" version="2.0"><channel>`,
Promise.all(request.map(async (document) => {
xml += `<item turbo="true"><link>${document.url}</link><turbo:content><![CDATA[<header><h1>Фото ${document.tags.slice(0, 3).join(', ')}</h1></header><pubDate>${document.indexAt.toUTCString()}</pubDate><figure><img src="${document.image}"><figcaption>Бесплатное фото ${document.tags.slice(-3).join(', ')}</figcaption></figure>]]></turbo:content></item>`
})), xml + `</channel></rss>`
}
Такая же структура в обычно rss для турбо-страниц
Пытаюсь добавить эти элементы по апи
function pushYandexTurboItems(request) {
return options.uri = request.address, options.headers['Content-type'] = 'application/rss+xml', options.FormData = request.rss,
http.post(options).then()
}
Вываливает ошибка
body:
{ error_message: 'Expected valid xml, found: "..."',
error_code: 'ENTITY_VALIDATION_ERROR' }
Расшифровка
ENTITY_VALIDATION_ERROR — тело запроса не прошло валидацию.
Что не так?
Пробовал массив элементов передать
return Promise.all(request.map(async (document) => {
return `<item turbo="true"><link>${document.url}</link><turbo:content><![CDATA[<header><h1>Фото ${document.tags.slice(0, 3).join(', ')}</h1></header><pubDate>${document.indexAt.toUTCString()}</pubDate><figure><img src="${document.image}"><figcaption>Бесплатное фото ${document.tags.slice(-3).join(', ')}</figcaption></figure>]]></turbo:content></item>`
}))
Та же самая ошибка.
Думаю может я вообще не понял предназначение данного апи?