Ruby 了解HTTParty配置
在“艰苦地学习Ruby”一文中,作者建议仔细阅读别人的代码,并尝试理解它。他们还建议,这将是困难的,但写下你对代码的问题。唯一的问题是,我不知道如何在谷歌搜索后得到问题的答案,所以我想我会试着把它们贴在这里,看看有没有人能帮我?如果这不合适,请告诉我,我将尝试找到另一种选择Ruby 了解HTTParty配置,ruby,Ruby,在“艰苦地学习Ruby”一文中,作者建议仔细阅读别人的代码,并尝试理解它。他们还建议,这将是困难的,但写下你对代码的问题。唯一的问题是,我不知道如何在谷歌搜索后得到问题的答案,所以我想我会试着把它们贴在这里,看看有没有人能帮我?如果这不合适,请告诉我,我将尝试找到另一种选择 require 'httparty' class BaseWebService include HTTParty format :json base_uri URL_to_mock_services def
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,那么
必须把它包括在课堂上吗?默认情况下是否不可用
在全班
:这会将我们从调用中得到的任何响应格式化为json对象吗format:json
:是否每次创建BaseWebService类的新实例时都会自动调用它?如果没有,它是如何触发的base\u uri
:我在HTTParty文档中看到 返回属性default\u options的值 但我不确定这意味着什么。也不知道它在这门课上的用途是什么default\u选项
- 语法是什么李>
- 在类方法
中,作者使用了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),但我无法在代码库中的任何地方找到这些变量或方法?你知道这些是怎么使用的吗
当块被
产生时,这些变量被赋值。欢迎使用堆栈溢出。如果你被扔到狼群中,我强烈建议你阅读其他教程(除了你正在阅读的教程)。探索其他代码非常好,但您需要一些基础知识,这些知识在其他教程中都有介绍,您需要了解。“为我写一篇教程”网站不是这样吗。一旦你看完了教程和互联网,那么问一下就更合适了。“”是您的朋友。谢谢您的回答。我很感激你把一切都说得那么具体。现在它更有意义了。当我赢得今年的联邦快递杯时,你会在我的新闻发布会上被提及。