Ruby 了解HTTParty配置

Ruby 了解HTTParty配置,ruby,Ruby,在“艰苦地学习Ruby”一文中,作者建议仔细阅读别人的代码,并尝试理解它。他们还建议,这将是困难的,但写下你对代码的问题。唯一的问题是,我不知道如何在谷歌搜索后得到问题的答案,所以我想我会试着把它们贴在这里,看看有没有人能帮我?如果这不合适,请告诉我,我将尝试找到另一种选择 require 'httparty' class BaseWebService include HTTParty format :json base_uri URL_to_mock_services def

在“艰苦地学习Ruby”一文中,作者建议仔细阅读别人的代码,并尝试理解它。他们还建议,这将是困难的,但写下你对代码的问题。唯一的问题是,我不知道如何在谷歌搜索后得到问题的答案,所以我想我会试着把它们贴在这里,看看有没有人能帮我?如果这不合适,请告诉我,我将尝试找到另一种选择

require 'httparty'

class BaseWebService
  include HTTParty
  format :json
  base_uri URL_to_mock_services
  default_options.update(verify: false)

  def self.get_data(extension = {}, url = {}, body = {}, query = {})
    url_string = combine_extension_and_url(extension, url)
    do_get = -> (req_url, req_body, req_query) { get(req_url, body: req_body.class == String ? JSON.parse(req_body) : req_body, query: req_query) }
    return_response(url_string, body.to_json, query, &do_get)
  end
在上面的代码中,作者正在设置对“模拟服务”的请求。作者正在使用HTTParty向服务发出请求。我有以下几个问题:

  • 为什么如果我们在.rb文件中需要HTTParty,那么 必须把它包括在课堂上吗?默认情况下是否不可用 在全班

    • format:json
      :这会将我们从调用中得到的任何响应格式化为json对象吗
    • base\u uri
      :是否每次创建BaseWebService类的新实例时都会自动调用它?如果没有,它是如何触发的
    • default\u选项
      :我在HTTParty文档中看到

      返回属性default\u options的值

      但我不确定这意味着什么。也不知道它在这门课上的用途是什么

    • 语法是什么
    • 在类方法
      get_data
      中,作者使用了
      req_url
      req_body
      req_query
      ,但我无法将它们作为变量或方法定位在代码库的任何位置。你知道这些是怎么使用的吗

    • 你是我最喜欢的高尔夫球手,所以我要在这里帮你

      为什么如果我们在.rb文件中需要HTTParty,那么我们就必须将它包含在类中?默认情况下,它在整个类中不可用吗

      require
      关键字是Ruby查找并加载具有该名称的文件的方法

      一旦需要,您现在可以从该文件访问类和模块,例如HTTParty

      include
      在这里做了一些非常不同的事情。您可以看到它实际上是一个模块,当您
      在类上包含'AModule'
      时(
      BaseWebService
      在您的代码中),您就为您的类实例提供了访问该模块方法的权限。这意味着
      HTTParty
      模块实现的方法,例如
      get
      ,现在可以通过
      BaseWebService.new.get
      BaseWebService
      类中使用

      format:json,这会将调用返回的任何响应格式化为json对象吗

      他只是重写类方法
      格式
      (请参阅)

      base_uri-是否每次创建BaseWebService类的新实例时都会自动调用它?如果没有,它是如何触发的? default_options-我在HTTParty文档中看到,该状态返回属性default_options的值,但我不确定这意味着什么。也不知道它在这门课上的用途是什么

      当您调用大多数HTTParty方法时,它会查看是否设置了
      base\u uri
      ,因为您正在类中重写它,所以它将使用该值

      语法的作用是什么

      do\u get=->
      是一个赋值,其中新变量
      do\u get
      被赋值为
      lambda
      ->
      是lambda的缩写

      在类方法get_data中,作者使用了以下内容(req_url、req_body、req_query),但我无法在代码库中的任何地方找到这些变量或方法?你知道这些是怎么使用的吗


      当块被
      产生时,这些变量被赋值。

      欢迎使用堆栈溢出。如果你被扔到狼群中,我强烈建议你阅读其他教程(除了你正在阅读的教程)。探索其他代码非常好,但您需要一些基础知识,这些知识在其他教程中都有介绍,您需要了解。“为我写一篇教程”网站不是这样吗。一旦你看完了教程和互联网,那么问一下就更合适了。“”是您的朋友。谢谢您的回答。我很感激你把一切都说得那么具体。现在它更有意义了。当我赢得今年的联邦快递杯时,你会在我的新闻发布会上被提及。