laximo — ruby-библиотека для web-сервисов Laximo
Поддержка web-сервисов:
Поддерживаемые версии Ruby
Ruby 1.9.3+
Установка (Rails)
- Добавляем в Gemfile строку:
gem 'laximo' - В консоли
bundle install - Задаем параметры конфигурации в файле
config/initializers/laximo.rb: ```ruby Laximo.options.use_ssl true Laximo.options.ssl_key ::File.join(Rails.root, 'db', 'ssl', 'client.key') Laximo.options.ssl_cert ::File.join(Rails.root, 'db', 'ssl', 'client.pem') Laximo.options.ssl_verify false
Laximo.options.timeout 10 Laximo.options.debug false
Конфигурация
Laximo.options.ssl_key "путь_к_файлу"— путь к открытому ключу ssl-сертификатаLaximo.options.ssl_cert "путь_к_файлу"— путь к закрытому ключу ssl-сертификатаLaximo.options.ssl_cert true/false— проверять или нет валидность сертификата. В случае самоподписанного сертификата, проверку на валидность необходимо отключитьLaximo.options.use_ssl true/false- использовать ssl-соединение или нетLaximo.options.use_login true/false- использовать авторизацию по подписке или нетLaximo.options.login- логин для авторизации по подпискеLaximo.options.password- пароль для авторизации по подпискеLaximo.options.timeout 30- таймаут соединения в секундах (по-умочланию, 10)Laximo.options.user_agent "Ваш_юзер_агент"- задание произвольного юзер-агента (по-умолчанию, "LaximoRuby [версия_библиотеки]")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/)
Методы 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, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_frame(frame:, frame_no:, catalog: nil, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.get_wizard(catalog:, wizard_id: nil, value_id: nil, 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_wizard(catalog:, wizard_id:, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.find_vehicle_by_wizard2(catalog:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_vehicle_info(catalog:, vehicle_id:, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.exec_custom_operation(catalog:, operation:, param:, locale: 'ru_RU')
- Laximo.oem.list_units(catalog:, vehicle_id:, ssd: nil, category_id: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.list_categories(catalog:, vehicle_id:, ssd: nil, category_id: nil, locale: 'ru_RU')
- Laximo.oem.get_filter_by_unit(catalog:, unit_id:, vehicle_id:, filter:, ssd: nil, locale: 'ru_RU')
- Laximo.oem.get_unit_info(catalog:, unit_id:, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.list_detail_by_unit(catalog:, unit_id:, ssd: nil, localized: true, locale: 'ru_RU')
- Laximo.oem.list_image_map_by_unit(catalog:, unit_id:, ssd: nil)
- Laximo.oem.get_filter_by_detail(catalog:, unit_id: , detail_id: , filter: , ssd: nil, locale: 'ru_RU')
- Laximo.oem.list_quick_group(catalog, vehicle_id, ssd: nil, locale: 'ru_RU')
- Laximo.oem.list_quick_detail(catalog:, vehicle_id:, quick_group_id:, all:, ssd: nil, 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- функция не поддерживается каталогомSoapGroupIsNotSearchableError- поиск по группе запрещён, в связи с слишком большим количеством входящих в группу узловLaximo::SoapError- общая ошибка протокола SOAP
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-2016 DansingBytes.ru, под лицензией BSD