RailLocator API
API wrapper для RailLocator API v2
Оглавление
Установка
Ruby
$ gem install rail-locator-api
Rails
добавьте в Gemfile: gem 'rail-locator-api', git: 'https://gitlab.ctm.ru/locator/rail-locator-ruby-api-wrapper'
и запустите bundle install.
Затем: rails g rail_locator_api:install
Требования
Необходимо получить api key https://rail-locator.com/app/api-keys
Использование Rails
В файл config/rail_locator_api.yml вставьте ваши данные
Использование Ruby
Сначала создайте экземпляр объекта RailLocatorApi::Request:
locator = RailLocatorApi::Request.new(api_key: "your_api_key", api_auth_method: :api_key)
Вы можете изменять api_key, api_user_email, api_user_password, timeout, open_timeout, faraday_adapter, proxy, symbolize_keys, logger, и debug:
RailLocatorApi::Request.api_key = "your_api_key"
RailLocatorApi::Request.api_user_email = "[email protected]"
RailLocatorApi::Request.api_user_password = "12345678"
RailLocatorApi::Request.timeout = 15
RailLocatorApi::Request.open_timeout = 15
RailLocatorApi::Request.symbolize_keys = true
RailLocatorApi::Request.debug = false
Либо в файле config/initializers/rail_locator_api.rb для Rails.
Debug Logging
Измените debug: true чтобы включить логирование в STDOUT.
locator = RailLocatorApi::Request.new(api_key: "your_api_key", debug: true)
Custom logger
Logger.new используется по умолчанию, но вы можете изменить на свой:
locator = RailLocatorApi::Request.new(api_key: "your_api_key", debug: true, logger: MyLogger.new)
Или:
RailLocatorApi::Request.logger = MyLogger.new
Примеры
Треки
Получение трека
track_id = 1
#КАК ВЫГЛЯДИТ СЕЙЧАС
RailLocatorApi::Request.tracks.dislocation(track_id).data.retrieve.body
#КАК ЭТО ДОЛЖНО ВЫГЛЯДЕТЬ
RailLocatorApi::Request.tracks(track_id).retrieve.body
Получение треков
params = {
track_ids: [1,2,3],
operations_count: 100
}
#КАК ВЫГЛЯДИТ СЕЙЧАС
RailLocatorApi::Request.tracks.dislocation.data.retrieve(body: params).body
#КАК ЭТО ДОЛЖНО ВЫГЛЯДЕТЬ
RailLocatorApi::Request.tracks.retrieve(params: params).body
Постановка на слежение
body = [
{
is_validate_vehicle: true,
cargo_transport_unit_number: "Test",
tracking_type: 0,
country_code: "RU",
is_cross_country_tracking: true
}
]
RailLocatorApi::Request.tracks.create(body: body).body
Снятие со слежения
body = {
track_ids: [
123,
1234
]
}
RailLocatorApi::Request.tracks.delete(body: body)
#ОК, НО НУЖЕН ЕЩЕ МЕТОД
track_id = 123
RailLocatorApi::Request.tracks(track_id).delete
Получение списка треков
params = {
"limit": 10000,
"offset": 0,
"filters": [
{}
],
"fulltext_filter": "string"
}
RailLocatorApi::Request.tracks.dislocation.retrieve(body: params).body
# чем это отличается от [Получение несклько треков]? Это или то история? поправьте нейминги, не понятно
# КАК ДОЛЖНО ВЫГЛЯДЕТЬ ПОЛУЧЕНИЕ ИСТОРИИ ПО ТРЕКУ
RailLocatorApi::Request.tracks(track_id).history.retrieve.body