Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用rails使用web服务/API_Ruby On Rails_Ruby_Service_Web_Httparty - Fatal编程技术网

Ruby on rails 使用rails使用web服务/API

Ruby on rails 使用rails使用web服务/API,ruby-on-rails,ruby,service,web,httparty,Ruby On Rails,Ruby,Service,Web,Httparty,我是rails世界的新手,正在尝试构建一个应用程序,让我能够根据用户输入在Amazon等网站上搜索内容 我做了一些研究,看来httpartygem是一个好的开始?不过,到目前为止我找到的文件不是最好的。他们并没有给我很多信息(代码放在哪里等) 有没有现成的教程或代码示例可供我使用或查看,让我更好地了解它的工作原理?我现在正在开发一个类似的应用程序,所以让我提供一些想法 首先,如果您是Rails的新手,那么作为第一步,我建议您采用并行方法解决此问题,包括两个方面: 了解Rails 了解如何在Rub

我是rails世界的新手,正在尝试构建一个应用程序,让我能够根据用户输入在Amazon等网站上搜索内容

我做了一些研究,看来httpartygem是一个好的开始?不过,到目前为止我找到的文件不是最好的。他们并没有给我很多信息(代码放在哪里等)


有没有现成的教程或代码示例可供我使用或查看,让我更好地了解它的工作原理?

我现在正在开发一个类似的应用程序,所以让我提供一些想法

首先,如果您是Rails的新手,那么作为第一步,我建议您采用并行方法解决此问题,包括两个方面:

  • 了解Rails
  • 了解如何在Ruby中与API交互(发出请求和解析响应)
  • 这是两个独立的问题,尽管最终可能会一起实现它们,但最好先单独考虑它们

    对于第一个问题,我建议先编写两个简单的应用程序,以了解事物是如何工作的。即使只是一个简单的应用程序也需要一定数量的用户交互,可能需要将记录保存到数据库中,等等,这些问题与从API中使用数据是分开的。Rails上的教程数不胜数,但仅举一个例子,您可以尝试使用Michael Harti的教程作为起点

    第二点,使用API数据,与设计应用程序本身的问题不同。为了进一步了解问题的这一方面,我建议使用一个流行的API客户机gem(如您所提到的),这是我自己使用的。与其立即尝试在Rails应用程序中使用HTTParty方法,作为练习,我建议在控制台(irb)中玩一玩。如果您安装gem(
    gem install httparty
    ),那么您可以从控制台请求它(
    require'httparty'
    ),并立即从API发出请求和解析响应

    例如:

    一旦您对Rails和ruby中的API有了更多的了解,那么您就可以开始实际构建应用程序了。根据您对API的请求的复杂程度,您可以选择在Rails应用程序中如何构造API请求:

  • 直接从控制器操作将请求作为Rails应用程序本身的一部分。只有在有限数量的服务上支持数量非常有限的请求类型(例如,简单搜索)时,这才算是好的。任何更复杂的事情,你的控制器都会变胖,这在MVC框架中是不允许的
  • 创建一个单独的ruby类(通常称为API包装器),将用于发出请求和解析API响应的方法组合在一起。使用gem-like-HTTParty,只需在类中添加一行
    include-HTTParty
    ,即可将模块添加到类中。有很多关于如何做到这一点的例子
  • 使用专用的gem访问特定的api,或者自己创建一个(或多个)。对于大多数流行的服务,例如,等,都有一些珍宝。有关更多信息,请参阅。这消除了与API交互的许多痛苦,但只适用于所有服务的一个子集
  • 您提到您正在考虑使用HTTParty,我可以推荐,因为我自己也在使用它。还有其他选择,如(更多信息,请参阅),但我发现对于大多数任务,HTTParty都可以做得很好。文档可能有点稀疏,但您可以从中使用大量文档


    希望有帮助

    最好的起点是首先学习Rails和MVC以及模型、视图和控制器中的内容。在你掌握了窍门之后,这个问题的答案对你来说应该很容易。
    irb(main):001:0> require 'httparty'
    => true
    irb(main):002:0> response = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
    => ...