我目前正在与Httparty
合作制作一个GET
Seamless.giv API,该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)
有效。
答案 0 :(得分:1)
如果我正确理解了您的要求,则可以编写以下方法:
def create_form
get("/form/#{form_id}/elements", headers)
end
然后您可以拨打以下电话:
@form = SeamlessGov.new(params, headers).create_form