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 调用在哪里? 的相关文章

  • 从 Ruby on Rails 应用程序运行 phantomjs

    我有兴趣使用幻影 http www phantomjs org 我想从我的 Ruby on Rails 应用程序运行它 然而 这是一个命令行工具 即我需要运行类似phantomjs rasterize js http raphaeljs c
  • 有没有办法以编程方式访问 Google 的搜索引擎结果? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 谷歌是否提供了一种以编程方式查看特定查询的搜索引擎结果的方法 我想构建一个跟踪应用程序 以便用户可以看
  • Rails 6:每个用户只能创建一个配置文件

    我目前正在开发 Rails 6 应用程序 我有以下关联 用户有一个配置文件 并且配置文件属于用户 当编辑用户的配置文件时 我最终为该用户提供了两个配置文件 我希望每个用户只有一份个人资料 编辑表单 profile edit html erb
  • Rails 中 WHERE 子句中的 ALL 运算符

    关联关系如下图所示 InstructorStudent has many fees Fee belongs to instructor student 我想要获得在所有给定数组中具有每月详细信息的指导学生 如果其中任何一个中不存在每月详细信
  • heroku 上的 bitbucket 私有存储库

    我有一个需要 gem 的 Rails 应用程序 我将这个 gem 托管在私有存储库的 bitbucket 上 在我的 Gemfile 中 我添加了 gem 如下所示 gem my gem git gt gi email protected
  • 设计 - 创建用户帐户并确认而不发送电子邮件?

    我将设备与 facebook 集成 现在 当我在用户使用他 她的 Facebook 帐户登录后创建用户帐户时 user User create email gt data email password gt Devise friendly
  • Rails error_messages 帮助器

    这是一段很常见的代码 First name br error messages是一个辅助方法 但我很难找到它的文档 为什么呢 我在这里找到它们 error messages 具有相同的参数错误消息 http apidock com rail
  • Ruby/Rails - 如何创建类并从控制器访问它

    我一直在尝试使用一些不同的 gem 在 Rails 3 中显示谷歌地图 但遇到了一些问题 幸运的是我发现了这个https github com YouthTree bhm google maps https github com Youth
  • 如果你使用belongs_to而没有相应的has_one,会发生什么?

    我有一个核心模型Item 以及一个从自定义源 例如 RSS feed 填充它的脚本 在 feed 中 每个项目都用一个标识guid 在我的系统中 项目只有一个自动生成的id首要的关键 我想要 比方说 ItemFeedInfo那个地图guid
  • 如何让 Twilio 在hangup() 被触发时停止拨号?

    我一直在使用 twilio ruby gem 开发 Twilio 应用程序 但我陷入了一个部分 为呼叫构建 TwiML 响应 我拨打一些号码 以便他们也可以接听呼叫 def handle gather response Twilio Twi
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • 使用 ActiveRecord::Relation 时的 RSpec 匹配器

    所以这是我要测试的方法 def self by letter letter where lastname LIKE letter order lastname end 简单问一下 letter 后面的百分号到底有什么作用 跟格式化有关系吗
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • factory_girl + rspec 似乎并没有在每个示例后回滚更改

    类似于这里描述的问题 http rpheath com posts 411 how to use factory girl with rspec http rpheath com posts 411 how to use factory g
  • 与heroku配合使用的统计引擎

    我有一个 Heroku Rails 应用程序 需要处理一些重要的数字 并且我需要使用像 R 这样的统计库 更糟糕的是 MatLab 我正在寻找以下任何问题的答案 是否有不需要二进制文件的功能齐全的统计包 GEM 是否可以将 R 二进制文件作
  • Rails Structure.sql 和 schema.rb 之间有什么区别

    我知道 schema rb 文件是一个 ruby 文件 它是在运行 rake 迁移时创建和修改的 但是 Structure sql 呢 我在一些项目中看到了 schema rb 在其他项目中看到了 Structure sql 以及在一些这两
  • 如何监听第三方应用程序触发的数据库更改

    我需要将 Ruby on Rails 应用程序与第 3 方应用程序集成 该应用程序将共享一个公共 PostgreSQL 数据库 也就是说 Rails 应用程序和第 3 方应用程序将使用相同的 PG 数据库 是否可以在 Rails 应用程序中
  • Rails has_many 到 has_many 具有多个模型

    模拟以下情况的最佳方法是什么 Word belongs to wordable polymorphic gt true Phrase has many words as gt workable belongs to story Line h
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • Rails 未定义“2013-03-06”的方法“strftime”:字符串

    我收到错误 2013 03 06 的未定义方法 strftime 字符串 当尝试使用 strftime 从字符串 2013 03 06 正常显示日期 2013 年 6 月星期日 3 日或类似的日期 时 在我的 index html erb

随机推荐

  • 在 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