Ruby on rails 如何在Ruby on Rails中从JSON edpoint url提取参数?
我已经为这个任务奋斗了几个小时了。因为我以前从未使用过JSON格式,所以我不知道如何从接收到的URL提取参数到端点API 假设我有这样的url:Ruby on rails 如何在Ruby on Rails中从JSON edpoint url提取参数?,ruby-on-rails,json,endpoint,Ruby On Rails,Json,Endpoint,我已经为这个任务奋斗了几个小时了。因为我以前从未使用过JSON格式,所以我不知道如何从接收到的URL提取参数到端点API 假设我有这样的url: /endpoint/name=anna&email=whatever@example.com def get_params response = request.body @user = JSON.parse(response) end 但请求格式为: /endpoint.json?name=:name&email=:ema
/endpoint/name=anna&email=whatever@example.com
def get_params
response = request.body
@user = JSON.parse(response)
end
但请求格式为:
/endpoint.json?name=:name&email=:email
如何提取这些参数?我尝试过创建这样的方法:
/endpoint/name=anna&email=whatever@example.com
def get_params
response = request.body
@user = JSON.parse(response)
end
但我甚至不知道如何正确地测试它
我应该为我收到的帖子创建一个路由吗?您可以为JSON端点创建一个普通路由。查询字符串参数将一如既往地通过
params
散列提供。如果您的URL是/endpoint.json?name[]=anna&email[]=whatever@example.com
(即,对于响应json的端点
资源来说,只是一个普通的索引路由),您可以使用参数[:name]获取名称数组
和带有参数[:email]
的电子邮件数组您的意思是我可以这样提取它:@name=JSON.parse(params[:name])
?当我尝试此操作时,我得到了757:unexpected-token错误。无需解析JSONparams[:name]
在您的示例中,将是一个名称数组(在这个特定示例中,仅是一个名称数组:“anna”)。您可以说类似于@names=params[:name]
或@name=params[:name]的话。首先
。请参阅本节了解解释哦,当然是对的!我更新了我的答案,其中的/endpoint.json?name=:name&email=:email
一行让我感到困惑。正如你和@vpsz所说,我确实从params那里得到了vaues,但是我现在有一些路由错误。我用URL格式测试所有内容:/?name=anna
,而不是/endpoint/name=anna
。没有问号,没有文件夹路径。您知道我应该为该POST请求提供哪些路由吗?@ZuzannaSt对于POST请求,您不应该在URL中提交查询参数。我假设您想要的是实际发送JSON,例如{“name”:“anna”,“email”:whatever@example.com“}
。此数据应在HTTP请求正文中发送,该请求的内容类型
标题应为application/json
。在本页中,您可以看到如何在jQuery中发送POST JSON请求的基本示例。您的服务器端路由应该是POST/endpoint。在URL中使用查询参数对于JSON API来说是不好的做法。