处理传入的HTTP POST



我似乎缺少一些基本的东西,因为我不知道如何捕获然后处理传入的HTTP Post。我是一个第一次学习Ruby的C/c++开发人员,而且我从来没有处理过web方面的东西。

我正在写我的第一个Slack Webhook, Slack会将类似的数据发送到我的web服务器:

token=ZLAmT1sKurm2KwvmYDR9hbiV
team_id=T0001
team_domain=example
channel_id=C2147483705
channel_name=test
user_id=U2147483697
user_name=Steve
command=/weather
text=94070
response_url=https://hooks.slack.com/commands/1234/5678

我不知道如何接受这个POST请求,并将其发送到我的应用程序进行处理。

我认为它类似于处理终端应用程序的argvargc,但我被困在写前几行。

我一直在寻找解决方案,但似乎我一直在问错误的问题。

我目前有一个运行在heroku上的Puma/Sinatra web服务器,其Procfile包含:

web: bundle exec puma -p $PORT(我也不知道什么端口分配给它)

与这个答案类似,Sinatra提供了一个DSL来接受POST请求。在块内,可以通过params散列访问数据。就像

post '/my_endpoint' do
  content_type :json
  @team_id = params[:team_id]
  res = do_stuff_with_channel_id params[:channel_id] # passing the value to a custom method example
  {my_response: res}.to_json #simple example of returning JSON in response 
end

Sinatra Docs on routing

HTH

相关内容

  • 没有找到相关文章

最新更新