ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用

标签 ruby-on-rails ruby api httparty ruby-on-rails-4.1

Rails 相对较新。我正在尝试调用一个 API,它应该向我返回一个唯一的 URL。我的应用程序中捆绑了 HTTParty。我已经创建了一个 UniqueNumber Controller ,并且我已经阅读了几个 HTTParty 指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。

基本上,我需要做的就是调用 API,获取它返回的 URL,然后将该 URL 插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码?

最佳答案

假设 API 为 JSON 格式并返回如下数据:

{"url": "http://example.com/unique-url"}

为了保持整洁和结构良好,API 逻辑应该属于它自己的类:

# lib/url_api.rb
require 'httparty'

class UrlApi
  API_URL = 'http://example.com/create'

  def unique_url
    response = HTTParty.get(API_URL)
    # TODO more error checking (500 error, etc)
    json = JSON.parse(response.body)
    json['url']
  end
end

然后在 Controller 中调用那个类:

require 'url_api'

class UniqueNumberController < ApplicationController
  def create
    api = UrlApi.new()
    url = api.unique_url

    @user = # Code to retrieve User
    @user.update_attribute :url, url
    # etc
  end
end

基本上 HTTParty 返回一个包含 HTTP 响应数据的响应对象,其中包括 header 和实际内容 (.body)。正文包含一串数据,您可以根据需要进行处理。在这种情况下,我们将字符串作为 JSON 解析为 Ruby 哈希。如果您需要自定义对 API 的 HTTP 请求,您可以在 HTTParty documentation 中看到所有选项。 .

关于ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897592/

相关文章:

mysql - 从字段中剥离空格后,Ruby/ActiveRecord 未检测到更改

ruby-on-rails - Rails 销毁操作不会删除

ruby - 无法让 awesome_print gem 工作

php - Mailchimp addListMember 在已经存在时返回客户端错误 400 错误请求

ruby-on-rails - 使用 Ransacker 过滤关系

ruby-on-rails - Rails 4 不完全支持 CanCan

ruby-on-rails - 运行 heroku rake db 时遇到问题 :migrate getting rake aborted! 错误

node.js - 如何允许特定服务器访问我的API?

python - 如何强制 Alchemy API 处理英文文本?

ruby-on-rails - 不管是不是 gem ,这就是问题所在