RailLocator API

API wrapper для RailLocator API v2

Оглавление

  1. Установка
    1. Использование Rails
    2. Использование Ruby
    3. Debug Logging
    4. Custom logger
  2. Треки
    1. Получение трека
    2. Получение несклько треков
    3. Постановка на слежение
    4. Снятие со слежения
    5. Получение списка треков

Установка

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