【发布时间】:2018-07-19 20:53:17
【问题描述】:
我目前正在开发一个 Rails 应用程序,我正在尝试将表单提交到 FormStack API。请求如下所示。
这是请求的样子:
POST /api/v2/form/12345/submission.json HTTP/1.1
Host: www.formstack.com
Authorization: Bearer YOUR_APP_OAUTH_TOKEN
Accept: application/json
Content-Type: application/json
field_12345=Example&field_12346=Answer
我正在尝试在我创建的库上使用 Httparty 来实现这一点,以向该 API 服务发出请求。
module FormStack
class Form
include HTTParty
attr_reader :form_id
base_uri "https://www.formstack.com/api/v2"
def initialize
@access_token = ENV.fetch('FORMSTACK_ACCESS_TOKEN')
@form_id = ENV.fetch('FORMSTACK_FORM_ID')
end
def create_form
self.class.get(relative_uri, headers: headers)
end
def submission
self.class.post(create_submission_uri, headers: headers, query: query)
end
private
def relative_uri
"/form/#{@form_id}/field.json"
end
def create_submission_uri
"form/#{@form_id}/submission.json"
end
def headers
{
"Accept" => "application/json",
"Content-Type" => "application/json",
"Authorization" => "Bearer #{@access_token}"
}
end
def query
{
"field_66563890" => "blah",
"field_66563757" => "something"
}
end
end
end
控制器
class FormsController < ApplicationController
def display_form
@form = FormStack::Form.new().create_form
end
def create
@form.submission
redirect_to 'localhost:3000'
end
end
这是路线
get '/forms/display_form', to: 'forms#display_form'
post '/forms/submit', to: "forms#create"
【问题讨论】:
标签: ruby-on-rails ruby post httparty