Удалите .xml расширение из запроса ActiveResource

Я пытаюсь использовать ActiveResource для потребления данных XML от третьего лица API. Я могу использовать приложение RESTClient, чтобы успешно аутентифицировать и выполнить запросы. Я кодировал свое приложение и когда я выполняю запрос, я получаю 404 ошибки. Я добавил:

ActiveResource::Base.logger = Logger.new(STDERR) 

в мой development.rb файл и вычисленный проблема. API отвечает данными XML к запросам, которые НЕ заканчиваются в xml. EG, это работает в RESTClient:

https://api.example.com/contacts

но ActiveResource отправляет этот запрос вместо этого

https://api.example.com/contacts.xml

Есть ли так или иначе "хороший" способ разделить расширение от запроса, сгенерированного ActiveResource?

Спасибо

14
задан Matt 21 July 2010 в 15:37
поделиться

1 ответ

Возможно, вам потребуется переопределить метод element_path в вашей модели.

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

def element_path(id, prefix_options = {}, query_options = nil)
  prefix_options, query_options = split_options(prefix_options) if query_options.nil?  
  "#{prefix(prefix_options)}#{collection_name}/#{id}.#{format.extension}#{query_string(query_options)}"
end

Удаление части. # {Format.extension} может сделать то, что вам нужно.

6
ответ дан 1 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: