Ответ Ruby API - как действовать - PullRequest
0 голосов
/ 30 мая 2018

Обучение Ruby & API.Практика с Uber API.Написал скрипт для оценки стоимости поездки.

require 'uber'
require 'geocoder'

def ride()

    # print "start? "
    # location_start = gets.chomp
    # print "finish? "
    # location_end = gets.chomp

    coordinates_start = Geocoder.coordinates("dublin") # gets a location for start and transforms into lat long
    coordinates_end = Geocoder.coordinates("dalkey") # gets a location for start and transforms into lat long

    client = Uber::Client.new do |config|
      config.server_token  = "{SERVER_TOKEN}"
      config.sandbox       = true
    end
    estimate = client.price_estimations(start_latitude: coordinates_start[0], start_longitude: coordinates_start[1],
                             end_latitude: coordinates_end[0], end_longitude: coordinates_end[1])
    estimate

end

puts ride

вывод оценки имеет формат #<Uber::Price:0x00007fc663821b90>.Я бегу estimate.class, и это массив.Я бегу estimate[0].class и получаю Uber::Price.Как я могу извлечь значения, которые я должен получить из ответа Uber API?[0]

[0] https://developer.uber.com/docs/riders/references/api/v1.2/estimates-price-get#response

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Я сопровождающий и соавтор uber-ruby драгоценного камня.@Schwern правильно, клиентская библиотека дает атрибуты, такие же, как в структуре ответа uber api.Я, вероятно, должен указать это в документации.

Обратите также внимание, что тестовые характеристики драгоценного камня покрыты на 100%, и это может дать вам представление о том, как взаимодействовать с драгоценным камнем, где бы это не было понятно.

Для оценки цен вы можете обратиться к https://github.com/AnkurGel/uber-ruby/blob/master/spec/lib/api/price_estimates_spec.rb#L61-L73

0 голосов
/ 30 мая 2018

Вы говорите с API через библиотеку, обычно вы будете следовать документации этой библиотеки uber-ruby .

К сожалению, эта библиотека не документирует, что за Uber::Price делает.Можно предположить, что Uber :: Price имеет те же поля, что и в документации API. Пик кода Uber :: Price , мы видим, что это в основном правильно.

attr_accessor :product_id, :currency_code, :display_name,
              :estimate, :low_estimate, :high_estimate,
              :surge_multiplier, :duration, :distance

Вы можете получить доступ к полям API с помощью estimate.field.Например, чтобы увидеть все оценки и длительности ...

estimates = ride()

estimates.each do |estimate|
    puts "Taking a #{estimate.display_name} will cost #{estimate.estimate} #{estimate.currency_code} and take #{estimate.duration / 60} minutes"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...