Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要

Posted

技术标签:

【中文标题】Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要【英文标题】:Ruby Restclient different double point or astrophobe and is order important 【发布时间】:2020-11-27 15:16:00 【问题描述】:

我是 ruby​​ RestClient 的新手。我已经搜索了这个 restclient 和 docruby 的许多示例。对我来说,使用 ruby​​ restclient 非常重要,可以非常快速地获取数据。 但有些不是答案,这就是我想向大家提问的原因。

我正在研究这个 ruby​​ restclient 示例代码:

restClient = RestClient::Request.new(       
    :method     => :get,
    :url        => url,
    :verify_ssl => true, #required using https
    :content_type => :json,
    :accept => :json,             
    :headers    => 
        :Authorization => "Bearer #token",
    
)   
result = restClient.execute()

我的第一个问题是使用双点和天文望远镜有什么不同?

restClient = RestClient::Request.new(
    :method     => :get,
    :method     => 'get',
    ...
)

第二个问题是,代码中的序列/顺序是否重要,例如第一个 url 然后方法或方法然后 url 等等?

restClient = RestClient::Request.new(
    :url        => :url,
    :method     => :get,
    ...
)

#or

restClient = RestClient::Request.new(
    :method     => :get,
    :url        => :url,
    ...
)

第三个问题是,关于接受放入标题。有的在 header 中放了 accept 和 content-type,有的没有,有什么不同?

restClient = RestClient::Request.new(
    :content_type => 'application/json',
    :accept       => 'application/json',
    
    #or
    
    :headers    => 
        'hello-token' => "Bearer #token",
        'content_type'=> 'application/json',
        'ACCEPT'      => 'application/json'
    
    
)

【问题讨论】:

如果您有三个问题,请提出三个问题,让每个问题都能得到应有的答案。但是,请注意问题 #1 和 #2 与 RestClient 无关,它们只是基本的 Ruby 语法问题,在每个基本 Ruby 教程中都有介绍,并且已经在 Stack Overflow 上被多次询问和回答。此外,如果您能准确地解释 什么 您对文档不清楚,这将有所帮助,这样回答者就不会浪费时间告诉您您已经知道的东西,或者您已经阅读和没有阅读的东西'不懂。 【参考方案1】:

使用双点和天文望远镜有什么不同?

:get 是一个符号,'get' 是一个字符串。

gem 是否能够同时处理这两者取决于 gem 的实现。因为 RestClient 文档在其示例中使用了 Symbol,所以我建议您也这样做。

但实际上——至少在其当前版本中——它并没有什么不同,因为 gem 在内部将参数转换为字符串(参见 initializenormalize_method

代码中的序列/顺序很重要

理论上,哈希是一种无序的数据结构。因此,在这种情况下,顺序不应该很重要。但请记住,Ruby 的哈希实现实际上是在迭代哈希时保留插入键的顺序。

接受标头

我在 gem 的文档中没有找到他们使用第一个版本的任何示例。你真的尝试过这两个版本吗?当两者都起作用时,我会感到惊讶。因此我建议使用header: 版本。

【讨论】:

以上是关于Ruby Restclient 不同的双点或 astrophobe 并且顺序很重要的主要内容,如果未能解决你的问题,请参考以下文章

Git 提交范围中的双点“..”和三点“...”有啥区别?

Git diff 提交范围中的双点“..”和三点“...”有啥区别? [复制]

ruby RestClient记录器

如何在 Ruby 的 RestClient gem 中设置超时?

restclient为啥加不上heads

Ruby/Rails 的神秘“未定义常量”问题