2016-04-21 56 views
0

刚开始使用API​​测试和挣扎,过去只是做前端selenium web驱动程序测试,但是,我需要让我的脑海围绕API测试。Ruby - API RestClient - JSON

我有点理解基础知识,比如Get会从url获取数据,post会将数据发布到url,但我认为这是正确的,但是我可能是错的。

我遇到的问题是如下:

response = RestClient.post 'http://jsonplaceholder.typicode.com/posts', 

    {:title => 'mr', :first_name => 'bob', :second_name => 'smith'} 

    data1 = JSON.parse(response) 

     p data1 

所以我分配到restclient.post响应变量和张贴的哈希键,值对的网址是什么?然后我使用JSON解析响应,然后将响应打印到控制台。我需要做的是从哈希中提取每个值,并将每个值输出到控制台,以便将数据显示为mr bob smith。而不是{:title =>'mr',:first_name =>'bob',:second_name =>'smith'}

回答

2
print "#{ data1[ :title ]} #{data1[:first_name]} #{data1[:second_name]}" 
+0

您能解释一下吗?我知道data1是变量,在方括号中它们是散列中的键,但是,你能解释一下这是如何打印键的值而不是键本身的? – Speedychuck

+0

当然。当你使用'“#{foo}”时,foo被评估。在这种情况下,我们正在访问该键的值:'data1 [:title]'。 –

+0

谢谢,这将是最好的方式来做我所需要的,或者你可以通过散列迭代,然后打印每个值?想这样工作吗? data1.each do | i | p i ['title'] ['first_name'] ['second_name'] end – Speedychuck