laximo — ruby-библиотека для web-сервисов Laximo
Поддержка web-сервисов:
Поддерживаемые версии Ruby
Ruby 2.0+
Установка (Rails)
- Добавляем в Gemfile строку
gem 'laximo'
- В консоле
bundle install
- Задаем параметры конфигурации в файле
config/initializers/laximo.rb
:
Laximo.options.login 'mylogin' # имейте в виду, что такие параметры
Laximo.options.password 'mypassword' # должны быть вынесены в переменные окружения
Laximo.options.timeout 10
Laximo.options.debug false
Laximo.options.locale 'ru_RU'
Конфигурация
-
Laximo.options.login
- логин для авторизации по подписке -
Laximo.options.password
- пароль для авторизации по подписке -
Laximo.options.timeout 30
- таймаут соединения в секундах (по-умочланию, 10) -
Laximo.options.user_agent "Ваш_юзер_агент"
- задание произвольного юзер-агента (по-умолчанию, "LaximoRuby [версия_библиотеки]") -
Laximo.options.locale
- локаль (по-умолчанию, 'ru_RU') -
Laximo.options.debug true/false
- включение/отключение режима отладки (по-умолчанию, выключено) -
Laximo.options.am_soap_action 'url'
- soap action для web-сервиса Laximo.Aftermarket (по-умолчанию,http://Aftermarket.Kito.ec
) -
Laximo.options.am_soap_endpoint 'url'
- soap endpoint для web-сервиса Laximo.Aftermarket (по-умолчанию,https://aws.laximo.net/ec.Kito.Aftermarket/services/Catalog.CatalogHttpSoap12Endpoint/
-
Laximo.options.oem_soap_action 'url'
- soap action для web-сервиса Laximo.OEM (по-умолчанию,http://WebCatalog.Kito.ec
) -
Laximo.options.oem_soap_endpoint 'url'
- soap endpoint для web-сервиса Laximo.OEM (по-умолчанию,https://ws.laximo.net/ec.Kito.WebCatalog/services/Catalog.CatalogHttpSoap12Endpoint/
) -
Laximo.options.raise_on_empty_response
- выбрасывать ошибку (Laximo::SoapEmptyResponseError), если ответ сервиса пуст (по-умолчанию, false). К сожалению, у сервиса Лаксима не всегда полные днанные: у узла деталей в ВИН-кодах модет не быть списка деталей. В этом случае, можно отловить эту ошибку и пометить ВИН-номер как неполный для повторного запроса к сервиму Лаксимы.
Методы web-сервиса Laximo.Aftermarket
- Laximo.am.find_oem(oem, brand: nil, options: [], locale: 'ru_RU')
- Laximo.am.find_replacements(detail_id, locale: 'ru_RU')
- Laximo.am.find_detail(detail_id, options: [], locale: 'ru_RU')
- Laximo.am.find_oem_correction(oem, brand: nil, locale: 'ru_RU')
- Laximo.am.manufacturer_info(manufacturer_id, locale: 'ru_RU')
- Laximo.am.list_manufacturer(locale: 'ru_RU')
Данные методы возвращают объект, у которого заданы методы:
-
success?
- успешна ли операция -
error?
- есть ли ошибка -
error
- возвращает ошибку илиnil
, если ошибки не было -
result
- возвращает массив хешей или пустой массив, если ничего не найдено, или если в процессе выполения произошла ошибка.
Методы web-сервиса Laximo.OEM
- Laximo.oem.list_catalogs(ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_catalog_info(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_vin(vin:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_frame(frame:, frame_no:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_frame_no(frame_no:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle(ident_string:, catalog: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.get_wizard2(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_wizard_next_step2(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_wizard2(catalog:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.get_vehicle_info(catalog:, vehicle_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.exec_custom_operation(catalog:, operation:, param:, locale: 'ru_RU')
- Laximo.oem.list_units(catalog:, vehicle_id:, ssd:, category_id: -1, localized: true, locale: 'ru_RU')
- Laximo.oem.list_categories(catalog:, vehicle_id:, ssd:, category_id: -10, locale: 'ru_RU')
- Laximo.oem.get_filter_by_unit(catalog:, unit_id:, vehicle_id:, filter:, ssd:, locale: 'ru_RU')
- Laximo.oem.get_unit_info(catalog:, unit_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.list_detail_by_unit(catalog:, unit_id:, ssd:, localized: true, locale: 'ru_RU')
- Laximo.oem.list_image_map_by_unit(catalog:, unit_id:, ssd:)
- Laximo.oem.get_filter_by_detail(catalog:, unit_id:, detail_id:, filter:, ssd:, locale: 'ru_RU')
- Laximo.oem.list_quick_group(catalog:, vehicle_id, ssd:, locale: 'ru_RU')
- Laximo.oem.list_quick_detail(catalog:, vehicle_id:, quick_group_id:, ssd:, all: 1, localized: true, locale: 'ru_RU')
Комбинированные методы web-сервиса wsdemo.laximo
-
Laximo.oem.vehicle_with_list_categories_and_quick_groups(vehicle_id:, catalog:, ssd:, localized: true, locale: 'ru_RU')
Информация о каталоге, модификации, списке категорий и списке групп быстрого поиска деталей. Если у модификации нет групп быстрого поиска то, Laximo выдает ошибку. -
Laximo.oem.vehicle_with_list_categories(vehicle_id:, catalog:, ssd:, category_id: -1,localized: true, locale: 'ru_RU')
Информация о каталоге, модификации, списке категорий
Данные методы возвращают объект, у которого заданы методы:
-
success?
- успешна ли операция -
error?
- есть ли ошибка -
error
- возвращает ошибку илиnil
, если ошибки не было -
result
- возвращает массив хешей или пустой массив, если ничего не найдено, или если в процессе выполения произошла ошибка.
Примеры использования
res = Laximo.am.find_oem('078100105NX', options: [:crosses, :images])
res.success? # true
res.error? # false
res.error # nil
res.result # [{:detailid=>"31454425", :formattedoem=>"078100105NX", :manufacturer=>"SEAT", ...]
Ошибки
После вызова одного из методов апи, может быть возвращены разного рода ошибки.
-
Laximo::SslCertificateError
- ваш ssl-сертификат не найден или недействителен -
Laximo::SoapInvalidParameterError
- неверное значение параметра в запросе к web-сервису -
Laximo::SoapCatalogNotExistsError
- каталог не зарегистрирован в системе -
Laximo::SoapInvalidRequestError
- не верно сформирован запрос к web-сервису -
Laximo::SoapUnknownCommandError
- команда не известна -
Laximo::SoapAccessDeniedError
- доступ запрещен -
Laximo::SoapNotSupportedError
- функция не поддерживается каталогом -
Laximo::SoapGroupIsNotSearchableError
- поиск по группе запрещён, в связи с слишком большим количеством входящих в группу узлов -
Laximo::SoapError
- общая ошибка протокола SOAP -
Laximo::SoapUnexpectedError
- неизвестная ошибка сервиса -
Laximo::SoapEmptyResponseError
- пустой ответ сервера
res = Laximo.oem.get_filter_by_detail(catalog: 'AP1211', unit_id: '', detail_id: '', filter: '')
res.success? # false
res.error? # true
res.error # <Laximo::SoapInvalidParameterError: UnitId>
res.result # []
Помимо перечисленного списка ошибок, в ответе могут быть возвращены стандартные ошибки библиотеки Net::HTTP
и интерпретатора Ruby.
Лицензия
Автор: Tyralion
Copyright (c) 2015-2020 DansingBytes.ru, под лицензией BSD