如何使用HTTParty构建GET请求?

时间:2016-01-15 01:36:42

标签: ruby-on-rails ruby api http http-headers

我正在创建一个rails应用程序,它将使用HTTParty对Eventbrite进行API调用。

我不知道如何在我的\ lib目录文件中构建我的eventbrite.rb,以便我可以在我的控制器中调用它。

到目前为止我的eventbrite.rb文件:

<input id="reviews"  ng-model="reviews" type="checkbox" ng-checked="reviews == 1" />

我发送GET请求的网址是这样的:require 'HTTParty' class EventBriteApi def eventbrite HTTParty.get() end end

我已经有了一个授权令牌,所以我只需要知道构造我的类的格式,以及如何在控制器中实际进行正确的调用,以及如何从我的视图中的表单中获取变量

提前致谢。

2 个答案:

答案 0 :(得分:1)

将现有的API库用于EventBrite,如果你只是想学习,那就很酷。学习的最佳方式是了解其他人如何做到这一点。

https://github.com/ryanj/eventbrite-client.rb/blob/master/lib/eventbrite-client.rb

@ ^浏览代码,看看他是如何做到的。

答案 1 :(得分:-2)

到目前为止你尝试了什么?你的问题是如此广泛,听起来你希望有人为你编写代码。

这是我要做的一个例子。

给定一个包含字段的表单,用户可以选择查询的不同部分:

<form action="/search">
  Search: <input name="q" />
  Sort by: 
    <select name="sort_by">
      <option value="best">Best"</option>
      .. more options
    </select>
  City: <input name="city" />
  <input type="submit" value="Search" />
</form>

一个处理该提交的控制器:

class Search < ApplicationController
  def search
    @results = EventBriteApi.eventbrite params
  end
end

现在,您的EventBriteApi类将接收构建您显示的URL所需的所有参数:

require "uri"
require 'HTTParty'

class EventBriteApi
  BASE_URL = "www.eventbriteapi.com/v3/events/search"

  def eventbrite(params)
    url = "?q=#{params[:q]}&sort_by=#{params[:sort_by]}&venue.city=#{params[:city]}"
    HTTParty.get BASE_URL + url
  end
end

唯一要做的就是呈现@results方法将返回的eventbrite。这取决于你。

这种方法的想法是将params传递给api类,以构建所需的查询并返回结果。