ruby on Rails MVC 框架项目中的 API 调用在哪里?

2023-11-26

我有一个使用 mvc 框架的 Ruby on Rails 应用程序。截至目前,我在控制器中有 API 调用,但认为这不是适合它们的地方。我的所有 API 调用应该放入哪种类型的文件?谢谢

def getDetails(id)
 api_response = HTTParty.get(base_uri, :query => {:DID => id, :DeveloperKey => devKey})
 @json_hash = api_response.parsed_response
 return @json_hash
end

对外部服务(第三方)的 API 调用并不特定于您的应用程序,因为他们的服务可供所有人使用(理论上)。据我了解,这些功能都在lib/目录,因为它们不是特定于应用程序的。理想情况下,您可以从您的lib在你的项目中,然后将其放入其他人的项目中lib/在另一个项目中它仍然可以正常工作。

将呼叫放入lib/。如果需要,您可以根据控制器中返回的数据创建模型。

它看起来像这样:

应用程序/控制器/

class YourController < ApplicationController

  def getDetails
   # keep in mind, api call may fail so you may want surround this with a begin/rescue
   api_response = YourApiCall.new.get_details(params[:id])
   # perhaps create a model
   @model = SomeModel.new(fname: api_response[:first_name], lname: api_response[:last_name])
    # etc...
  end
end

lib/

require 'HTTParty'

Class YourApiCall
  def get_details(id)
    HTTParty.get(base_uri, :query => {:DID => id, :DeveloperKey => devKey})
    @json_hash = api_response.parsed_response
    return @json_hash
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ruby on Rails MVC 框架项目中的 API 调用在哪里? 的相关文章

  • Rails 3 SSL 路由从 https 重定向到 http

    这个问题与此相关SO 问答 rails 3 ssl deprecation https stackoverflow com questions 3634100 rails 3 ssl deprecation建议使用routes rb和类似的
  • Ruby on Rails 离线编程

    我将离开互联网几周 但仍然想完成一个项目 我应该采取哪些步骤来确保在断开连接时能够访问我需要的内容 ruby 和 ROR 离线时 以下内容很难获得 gems docs Rails 专家博客 堆栈溢出 so gem 安装尽可能多 下载所有的轨
  • 如何加载 UrlHelper 和 Rails 中的路线?

    我想包括路线和link toPORO 中的方法 在控制台中测试这个时 我遇到了这个 如果我在没有路由助手的情况下包含 UrlHelper 一切似乎都工作正常 ruby 1 9 3 rc1 001 gt Rails version gt 3
  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 创建费用前验证 CVC 代码

    我正在尝试检查用户输入的 cvc 代码 我已经存储了条带 customer id 和条带 card id 我想在向用户收费之前验证 CVC 代码 以下是创建费用的代码 charge Stripe Charge create amount g
  • 如何在 Rails 测试中填充查找表

    我在用Cucumber RSpec and 工厂女工用于测试我的 Rails 应用程序 但我有几个查找表 其中大部分包含static数据 所以我试图找出测试时填充这些的最佳方法 单独做它们FactoryGirl看起来很乏味 我想远离固定装置
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • 使用 Mechanize (Ruby) 进行基本身份验证和表单身份验证

    我正在尝试登录公司内部网上的一个站点 该站点具有基本身份验证弹出对话框和基于表单的身份验证 这是我正在使用的代码 导致 401 gt Net HTTPUnauthorized 错误 require rubygems require mech
  • 从 Rails 3.1.3 升级到 Rails 3.2.1。资产错误

    我尝试将应用程序从 Rails 3 1 3 升级到 Rails 3 2 1 但资产出现问题 我有这样的错误 ActionController RoutingError No route matches GET assets logos op
  • 嵌入式签名 api 文档签名

    我正在使用 DocuSign 将电子签名添加到我的请求中 一切正常 现在 我使用嵌入式方法发送签名请求 通过导航到 URL 立即启动我的工作流程 登录后 执行以下代码 我得到 嵌入视图 但是当我粘贴网址尝试在导航中签署文档时 但会将我重定向
  • NameError:未初始化的常量 Gem::SourceIndex

    对于没有任何修改的新 Rails 应用程序 在访问主页时 成功运行后 会出现此错误bundle install 以下是版本号 ruby 1 9 3p392 2013 02 22 revision 39386 x86 64 darwin12
  • 有没有办法避免自动更新 Rails 时间戳字段?

    如果您有数据库列created at and updated at当您创建和更新模型对象时 Rails 将自动设置这些值 有没有办法在不接触这些列的情况下保存模型 我正在引入一些旧数据 我想根据 不同名称的 旧数据字段中的相应值设置这些值
  • 如果使用 jQuery 添加字段,Rails 嵌套表单属性不会保存

    我有一个带有嵌套表单的 Rails 表单 我使用 Ryan Bates 嵌套表单和 jquery 教程 并且就动态添加新字段而言 它工作得很好 但是当我提交表单时 它不会保存任何关联的属性 但是 如果在表单加载时构建部分 则它会很好地创建属
  • Devise:允许用户注册为“UsErNaMe”但使用“用户名”登录

    与大多数网站的工作方式相同 我将 UsErNaMe 存储在数据库中 但让用户使用 用户名 登录 这是一个相当明显且必要的功能 很多人似乎都问过它 但我不断遇到的解决方案似乎与 Devise 自己的文档脱节 例如 考虑这篇博文 http an
  • Rails 4.1 环境变量未重新加载

    我创建了一个application yml文件在配置目录中并添加了一些键值对 即AWS REGION us east 1 我还添加了以下内容application rb读取文件并更新 ENV 哈希 if Rails env developm
  • Rails 如何使用 send_data 导出数据,然后重定向到新页面?

    我有一个 Rails 应用程序 允许用户下载生成的 CSV 文件 下载文件后 我想将用户重定向到新的 URL 或操作 有没有在 send data 之后进行重定向的技巧 我想做这样的事情 这不起作用 send data output typ
  • Rails 4 可安装引擎,找不到文件“jquery”

    我正在创建一个 Rails 可安装引擎插件 它使用 gem jquery rails 我在 gemspec 文件中添加了这段代码 s add dependency jquery rails gt 3 0 1 and run bundle i
  • 查找 Rails 应用程序中未使用的代码

    如何查找正在运行和未运行的代码生产中 该应用程序经过充分测试 但还有很多测试unused代码 因此 他们在运行测试时得到覆盖 我想重构并清理这个烂摊子 它一直在浪费我的时间 我有很多后台工作 这就是为什么我希望生产环境来指导我 在 Hero
  • Rails:Passenger Standalone 适合生产部署吗?

    问题标题几乎概括了这一点 我找不到任何好的资源来概述使用 Phusion Passenger Standalone 进行 Rails 应用程序部署的优点 缺点 它与运行 Passenger Nginx 或 Passenger Apache
  • 如何让 Sidekiq 在 Heroku 上运行?

    这是我第一次尝试让 Redis 在 Heroku 上运行 我添加了一个工作dyno 就在今天 所以还没有付款 添加了RedisToGo Nano附加组件 在我的本地机器上测试了后台作业 并将应用程序推送到heroku heroku ps g

随机推荐

  • 在 C# Winforms 中的 DataGridViewCell 内绘制实心圆形或矩形

    我想在圆的中心画一个小实心圆DataGridViewCell 矩形也能达到这个目的 我想我必须在 CellPainting 事件中执行此操作 我已经尝试过这个 if e RowIndex gt 0 e ColumnIndex gt 0 if
  • 使用fractionDigits 对 BigDecimal 进行 JAXB 编组

    所以这是我的问题 我收到了一个 XSD 我生成的 XML 文件应符合该 XSD 使用org apache cxf cxf xjc pluginmaven 插件和外部绑定文件我生成源代码 但是当我尝试编组我的对象时 生成的 XML 不满足我的
  • 为什么我在 mdi 子窗口上有额外的关闭按钮?

    我遇到了一个奇怪的问题 我的 mdi 子窗体有 2 个关闭按钮和 2 个最大化按钮 问题截图 我像这样创建 mdi 子项 summaryForm MdiParent ContainerForm summaryForm WindowState
  • 声明 CSS 规则仅适用于特定类

    我有以下 CSS 我需要仅应用于特定的 div 因为存在冲突 相关 div 的类名称为 datepicker days 我是否声明以下内容table as datepicker days table 但是我该如何声明 table下面的类 C
  • 我可以明确检查取消/终止异步计算吗?

    我有一个如下所示的异步计算 请参阅内联注释 async do Async Sleep 100 cancellation may happen during sleep but isn t checked at the end of the
  • 将 PropertyPlaceholderConfigurer 与列表结合使用

    我正在使用 PropertyPlaceholderConfigurer 从属性文件映射字符串值 它工作正常 我的问题是我是否可以在我的属性文件中设置以下内容 我的列表 A B C 然后将其映射到列表 Value myList private
  • FMA(融合乘加)指令是否始终产生与先乘后加指令相同的结果?

    我有这个程序集 AT T 语法 mulsd xmm0 xmm1 addsd xmm1 xmm2 我想将其替换为 vfmadd231sd xmm0 xmm1 xmm2 这种转换是否总是在所有涉及的寄存器和标志中留下相同的状态 或者结果浮动会略
  • 新的 create-react-app 构建上的 npm start 返回 ELIFECYCLE 错误

    使用 create react app 制作了一个新的 React 应用程序 现在运行 npm start 时在终端中出现以下错误 gt react scripts start Attempting to bind to HOST envi
  • 如何从一年中的某一天获取日期

    我正在使用一个看起来有点像这样的数据集 Year Date Day nr Value 1976 19 02 1976 50 167 1976 19 03 1976 79 140 1978 05 03 1978 64 200 1978 05
  • 如何在 ActionScript 3.0 中查找关联数组的长度?

    有没有一种简单的方法来检索关联数组的长度 实现为Object 在 ActionScript 3 0 中 据我所知 在 AS3 中创建关联数组有两种主要方法 Use a Dictionary目的 当钥匙不需要是一个时特别方便string Us
  • Android:从返回堆栈中删除所有先前的活动

    当我点击Logout按钮在我的Profile我想带用户去的活动Login页面 他需要在其中使用新的凭据 因此我使用了这段代码 Intent intent new Intent ProfileActivity this LoginActivi
  • python元组的内部结构[重复]

    这个问题在这里已经有答案了 gt gt gt a 1 gt gt gt b 1 gt gt gt id a 140472563599848 gt gt gt id b 140472563599848 gt gt gt x gt gt gt
  • 在 ShowDialog (WPF MVVM) 中将 UpdateSourceTrigger 设置为显式

    我看到了这个例子 Binding UpdateSourceTrigger 属性 在示例中 UpdateSourceTrigger 设置为 Explicit 然后在视图代码中调用 TextBox 名称的 UpdateSource 但是 如果我
  • 如何在 jQuery 中检查 AJAX 响应是否包含 HTML 内容?

    我有一个页面 其中包含一种表单 在 AJAX 调用成功时有两种可能的响应 其中之一仅返回状态代码 我需要做的是检查response任何 HTML 内容的成功回调中的对象 以便我可以将它们显示在我的页面上 我已经知道我可以访问response
  • Gacutil 与 2008 的位置

    我想运行一个在 gac 中安装 dll 的构建后脚本 但我必须使用 gacutil exe 的完整路径 我在哪里可以找到它 我有视觉工作室2008 答案是C Program Files Microsoft SDKs Windows v6 0
  • 如何在 Javascript 中将 Guid 转换为字节数组?

    我有一个服务总线 转换数据的唯一方法是通过 JavaScript 我需要将 Guid 转换为字节数组 以便随后将其转换为 Ascii85 并将其缩小为接收客户端点的 20 个字符的字符串 任何想法将不胜感激 试试这个 需要大量测试 var
  • 使用 JavaScript 事件模拟悬停

    是否可以使用 JavaScript 事件模拟悬停 我尝试在目标元素上注入鼠标悬停事件 但没有成功 例如 如果有一个带有悬停选择器的链接 是否可以使用 JavaScript 事件 悬停 在其上 基本上 我想触发 CSS 悬停 你可以假设我不会
  • 如何在NiFi中调用远程REST服务

    是否可以在NIFI处理器中使用xmlHttpRequest来调用远程休息服务 就我而言ExecuteScript处理器 使用Javascript 无法评估XMLHttpRequest 有没有类似的解决方案可以用来获取响应数据 var Out
  • 安卓应用功耗

    如何查看Android中各个应用程序的功耗 与不同的应用程序相比 至少功耗应该是相对的 并且这些应用程序可能正在使用任何服务 如 WIFI GPS LCD 唤醒锁等 android 中是否有任何与此相关的 API 可以测量使用上述资源的应用
  • ruby on Rails MVC 框架项目中的 API 调用在哪里?

    我有一个使用 mvc 框架的 Ruby on Rails 应用程序 截至目前 我在控制器中有 API 调用 但认为这不是适合它们的地方 我的所有 API 调用应该放入哪种类型的文件 谢谢 def getDetails id api resp