Использование ActiveResource в API-интерфейсе REST Azure - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь запросить API Azure Microsoft.ResourceHealth / AvailabilityStatus из ActiveResource на Rails 6.

Я попытался с помощью self.collection_path({},{:api-version => '2015-01-01' }) добавить постоянные обязательные параметры запроса, но получил 400 - при отладке URI пропущены какие-либо параметры запроса.

Используя этот класс:

class AvailabilityStatuses < ActiveResource::Base

  self.site = "https://management.azure.com/subscriptions/mySubscriptionID/providers/Microsoft.ResourceHealth"
  self.headers['Authorization'] = 'Bearer '+$bearer_token
  self.include_format_in_path = false
  self.collection_path({},{:api-version => 2015-01-01})
  self.collection_name = "availabilityStatuses"

  ActiveSupport::Notifications.subscribe('request.active_resource')  do |name, start, finish, id, payload|
    puts payload
  end
end

Вызов AvailabilityStatuses.all в контроллере приводит к следующему выводу:

{:method=>:get, :request_uri=>"https://management.azure.com:443/subscriptions/mySubscriptionID/providers/Microsoft.ResourceHealth/availabilityStatuses", :result=>#<Net::HTTPBadRequest 400 Bad Request readbody=true>}

Документация API требует следующего вызова:

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2015-01-01

https://docs.microsoft.com/en-us/rest/api/resourcehealth/availabilitystatuses/listbysubscriptionid

...