如何使用类型为#34的网址初始化法拉第; http://example.com/something"?

时间:2014-07-31 15:43:37

标签: ruby-on-rails http url faraday

如果我这样做:

conn = Faraday.new(url: 'http://example.com/api') do |builder|
  builder.adapter :httpclint
end

它从基本网址中删除/apiconn.host返回"example.com"。我以后做的时候:

conn.post { |req| req.url '/resource'...}

它会调用example.com/resource,而不是example.com/api/resource。如何更改它以便不会删除基本网址?

我知道我只能使用example.com进行初始化,然后执行以下操作:

conn.post { |req| req.url '/api/resource'...}

但我希望将基本网址存储在全局配置中,以便只在代码中使用资源名称。

1 个答案:

答案 0 :(得分:3)

在请求开头省略正斜杠,它将相对于您提供的初始URL。否则,它将从主机的根目录开始:

conn.post { |req| req.url 'resource'...}  # Treated as example.com/api/resource
conn.post { |req| req.url '/resource'...} # Treated as example.com/resource

这是设计(见this GitHub issue