使用httparty宝石制作端点(Rails5)



我对如何处理这个问题有些困惑。本质上,我正在尝试了解有关Angular在Rails上的更多信息,因此我正在以API模式使用Rails - 但是,目前,我正在尝试将API构建到我发起的非API版本中(并不相关,不太相关,但是我很好奇如何使它两者都可以工作)。

非常基本的测试,我想知道他 /steam/:id端点(在此示例中),并获得 GetPlayedSummaries。安装了httparty,并在终端工作。

class SteamController < ApplicationController
  @steamKey = "{REDACTED}"
  @baseUrl = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+@steamKey+'&steamids='+@steamId+'"
  def get_player_summaries
    @steamId = params[:id]
    puts @baseUrl
    @games = HTTParty.get(@baseUrl).to_json
    puts response.body, response.code, response.message, response.headers.inspect
  end
end

这是我非常基本的控制器。实际上,我没有理由让Steamkey分开,但这有助于鼓励我需要帮助。

最初我有 @baseUrl as @baseUrl = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=#{@steamKey}+'&steamids=#{@steamId}"

使用完整版本,我得到了一个 bad argument (expected URI object or URI string)指向@baseurl,所以我觉得我不正确地包含它。我正在努力,但是即使它起作用,我也不确定如何制作它,所以它只是将其扔到UI中,以纯JSON?我使用JSON Builder等的许多其他元素来完成此操作,但这是数据库数据。这只是一个API调用。

洞察/文档我可以查看?

编辑:我相信我关于使用@steamKey的问题与此文章有关。@甚至被传给get_player_summaries

如我的编辑中所述,我能够找到文章来解释如何正确使用URL。

我的工作代码是:

class SteamController < ApplicationController
  def initialize
    @steamKey = "{REDACTED}"
    @baseUrl = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key="+@steamKey+"&steamids="
  end
  def get_player_summaries
    @playerUrl = @baseUrl + params[:id]
    @games = HTTParty.get(@playerUrl).to_json
    puts response.body, response.code, response.message, response.headers.inspect
    render json: @games
  end
end

响应有点慢,但可能是C9的问题。

最新更新