я хочу использовать REST API, я не могу настроить активный ресурс для его использования - PullRequest
0 голосов
/ 11 марта 2012

Приложение, над которым я работаю, использует API от TrackMania 2 / Maniaplanet

Текущая часть, которую я пытаюсь использовать, является запросом вернуть данные одного игрока:

http://ws.maniaplanet.com/players/sylario/

где sylario - имя пользователя. Удаление последнего "/" возвращает 404.

В настоящее время мне удалось активировать ресурс и сгенерировать следующий запрос: "#{playername}/":

http://ws.maniaplanet.com:80/players/sylario/.json

Я бы хотел удалить .json, так как API возвращает 404.

Вот мой класс модели:

class Player < ActiveResource::Base
  self.site = "http://ws.maniaplanet.com/"
  self.user="********"
  self.password="************"
end

Запрос от контроллера:

Player.find("sylario/")

Я также предвижу проблему, когда рельсы получат ответ в формате HTML, но по одному за раз.

Итак, как удалить .json?

Ответы [ 2 ]

3 голосов
/ 05 июля 2013

В версии 4 ActiveResource теперь вы можете использовать include_format_in_path, чтобы удалить файл .json, а также установить заголовок accept:

class Player < ActiveResource::Base
  self.site = "http://ws.maniaplanet.com/"
  self.user="********"
  self.password="************"
  self.include_format_in_path = false
end
1 голос
/ 11 марта 2012

ОБНОВЛЕНИЕ Player.find (: one,: from => "/ Players / sylario /") пропустит сгенерированный путь к элементу и не добавит .json к вашему URL.

Можете ли вы опубликовать код для вашего контроллера или там, где вы делаете фактический запрос в службу?

Кроме того, если вам нужно убрать расширение из URL, я полагаю, вам придется обезьяньим патчем ActiveResource. Вы можете сделать следующее в файле инициализатора:

class ActiveResource::Base
  def element_path(id, prefix_options = {}, query_options = nil)
    check_prefix_options(prefix_options)

    prefix_options, query_options = split_options(prefix_options) if query_options.nil?
    "#{prefix(prefix_options)}#{collection_name}/#{URI.parser.escape id.to_s}#{query_string(query_options)}"
  end
end

Переопределяет метод, используемый ActiveResource для генерации URL, и не добавляет расширение формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...