如何使用“http://example.com/something”类型的 url 初始化法拉第?

Ale*_*pov 1 url ruby-on-rails http faraday

如果我做:

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

/api从基本 url 中删除并conn.host返回"example.com". 当我以后做:

conn.post { |req| req.url '/resource'...}
Run Code Online (Sandbox Code Playgroud)

它调用example.com/resource, 而不是example.com/api/resource。我怎样才能改变它,这样它就不会削减基本网址?

我知道我只能用它来初始化它,example.com然后做一些类似的事情:

conn.post { |req| req.url '/api/resource'...}
Run Code Online (Sandbox Code Playgroud)

但我想将基本 url 存储在全局配置中,以便在代码中只使用资源的名称。

Dyl*_*kow 5

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

conn.post { |req| req.url 'resource'...}  # Treated as example.com/api/resource
conn.post { |req| req.url '/resource'...} # Treated as example.com/resource
Run Code Online (Sandbox Code Playgroud)

这是设计使然(请参阅此 GitHub 问题