【问题标题】:Httparty - appending to url and adding headers to get request via Ruby classHttparty - 附加到 url 并添加标头以通过 Ruby 类获取请求
【发布时间】:2018-07-10 17:40:16
【问题描述】:

我目前正在使用Httparty 制作一个GETSeamless.giv API,它从表单返回字段。在请求中,需要传递身份验证标头才能访问 API。但是必须以特定的形式提出请求。这就是问题出在基础 URI 中还是附加的地方?

这是curl 请求示例:

curl -X GET -H "AuthDate: 1531236159"\
 -H "Authorization: HMAC-SHA256 api_key=XXXXXXXX nonce=12345 Signature=XXXXXXXXXXX"\
 -d 'false' https://nycopp.seamlessdocs.com/api/form/:form_id/elements

这是我目前采取的方法:

class SeamlessGov
  include HTTParty
  base_uri "https://nycopp.seamlessdocs.com/api"

  def initialize(args={})
    @api_key = args[:api_key]
    @nonce = args[:nonce]
    @signature = generate_signature
  end

  def form(form_id)
    @form = form_id 
  end

  def headers(headers={})
    @headers = headers
  end

  def generate_signature
    # bash command
  end

end

最佳做法是将其附加或放在base_uri 中,例如: base_uri "https://nycopp.seamlessdocs.com/api/form/:form_id/elements" 或创建了一个附加到 base_uri 的方法,例如:

def append_form(form)
  "/form/#{form}/elements"
end

最好的方法是什么?所以当我打电话 @form = SeamlessGov.new(params, headers) 有效。

【问题讨论】:

    标签: ruby http append httparty


    【解决方案1】:

    如果我理解你在问什么,你会写这样的方法:

    def create_form
      get("/form/#{form_id}/elements", headers)
    end
    

    然后你可以这样调用:

    @form = SeamlessGov.new(params, headers).create_form
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-17
      • 2016-03-04
      • 2018-09-05
      • 2016-12-22
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2016-03-03
      相关资源
      最近更新 更多