Пакетная загрузка с использованием XML-фида

  1. Назначение
  2. Как работает?
  3. Рекомендации к серверу и уровню безопасности данных
  4. XML-фид

Назначение

Одним из требований технической интеграции DMS с Авто.ру Бизнес является реализация полноценного REST клиента.

Для упрощения интеграции с Авто.ру Бизнес имеется возможность загрузки информации об автомобилях в DMS при помощи XML-фида.

Как работает?

  1. На стороне DMS реализуется выгрузка в XML-файл текущего склада, а также недавно выбывших со склада и удаленных авто.
  2. Предоставляется общий доступ к этому файлу для Авто.ру Бизнес через HTTP(s)/FTP(s) протоколы обязательной авторизацией.
  3. В службу поддержки Авто.ру Бизнес направляется запрос на подключение загрузки фида. Указываются URL фида, логин и пароль для доступа к этому фиду, а также CLIENTID (см. авторизацию в API), от которого будет производиться загрузка склада из файла.
  4. После подключения фида, Авто.ру Бизнес будет загружать и обрабатывать XML-фид каждые три часа.
  5. Отчет по обработке фида будет отправлен на email, указанный в XML-фиде.

Рекомендации к серверу и уровню безопасности данных

  1. В целях обеспечения безопасности, помимо basic-аутентификации, желательно использовать криптографический протокол TLS 1.2 и выше для защиты передаваемых данных.
  2. Желательно настроить веб-сервер таким образом, чтобы передавать HTTP-заголовок Content-Type: application/xml; charset=utf-8, как это рекомендует RFC 7303.

XML-фид

Фид может содержать информацию о:
  • Размещенных на складе автомобилях.
  • Автомобилях, выбывших за последнее время (например, за последние 10 дней).
  • Удаленных из DMS авто.

Фид не должен содержать более 1000 объектов – в этом случае обрабатываются только первые по списку записи, остальные игнорируются. Информация о необработанных автомобилях содержится в отчете.

Главная секция <feed>
Атрибут Обязательность Описание Пример значения
<version> Да Версия. Должна быть «1» 1
<creationDate> Да Дата и время генерации фида в формате RFC 3339 2021-07-12T14:38:09+03:00
<email> Нет Email, на который будет отправлено письмо с результатами обработки фида robot@cm.expert
<dmsCars> Да Коллекция элементов <dmsCar>
Секция <dmsCar>
  • ID автосалона в теге <dealerId> и номер авто на складе в теге <dmsCarId> (обязательно для всех случаев).
  • Информация об авто в формате XML (для авто на складе или выбывшего авто).
  • Тег <deleted> со значением True или true (для удаленного из DMS авто).

Имена тегов и их значения (кроме тега <deleted>) соответствуют атрибутам авто на складе в Авто.ру Бизнес. См. раздел «Атрибуты авто на складе в Авто.ру Бизнес», а также описание атрибутов в Swagger документации API.

Внимание. Названия атрибутов должны точно соответствовать документации, в том числе в части регистра.

Пример


    <?xml version="1.0" encoding="UTF-8" ?>
    <feed>
        <version>1</version>
        <creationDate>2021-07-12T14:38:09+03:00</creationDate>
        <email>robot@cm.expert</email>
        <dmsCars>
            <dmsCar>
                <dmsCarId>#A</dmsCarId>
                <year>2014</year>
                <mileage>118100</mileage>
                <vin>XTA217130F0118693</vin>
                <stockState>inv/stockState>
                <arrivedAt>2018-08-27T00:00:00+03:00</arrivedAt>
                <buyoutPrice>220000</buyoutPrice>
                <markup>220000</markup>
                <sellingPrice>220000</sellingPrice>
                <contractType>tradeinnew</contractType>
                <photosUrls>http://example.org/photo1.jpg</photosUrls>
                <photosUrls>http://example.org/photo2.jpg</photosUrls>
                <photosUrls>http://example.org/photo3.jpg</photosUrls>
                <photosUrls>http://example.org/photo4.jpg</photosUrls>
                <dealerId>1</dealerId>
            </dmsCar>
            <dmsCar>
                <dmsCarId>#B</dmsCarId>
                <year>2014</year>
                <mileage>118100</mileage>
                <vin>XTA217130F0118693</vin>
                <stockState>out</stockState>
                <outReason>other</outReason>
                <outAt>2018-09-11T00:00:00+03:00</outAt>
                <arrivedAt>2018-08-27T00:00:00+03:00</arrivedAt>
                <buyoutPrice>220000</buyoutPrice>
                <markup>220000</markup>
                <sellingPrice>220000</sellingPrice>
                <contractType>tradeinnew</contractType>
                <dealerId>2</dealerId>
            </dmsCar>
            <dmsCar>
                <dmsCarId>#C</dmsCarId>
                <dealerId>1</dealerId>
                <deleted>true</deleted>
                <dmsDeletedAt>2017-03-10T05:40:00+03:00</dmsDeletedAt>
            </dmsCar>
        </dmsCars>
    </feed>