是否有一个消耗JSON-API格式的RESTful json api的宝石Ruby on Rails

时间:2016-05-17 17:17:41

标签: ruby-on-rails ruby json rest json-api

是否有用于在Rails应用程序中使用和解析JSON:API format的库。我觉得一旦返回请求,模型对象应该看起来像ActiveRecord对象,类似于ActiveResourceFlexirest。但是,问题是这两个问题让我对使用像Faraday这样更通用的http适配器更好。我不得不做一些花哨的处理来提取深层嵌套的数组和哈希值,更不用说代表关联了。

我想知道其他人是如何处理这种情况的。我认为我遇到的部分问题是“Json api”对于相关内容的混乱而言有点棘手。

3 个答案:

答案 0 :(得分:2)

对于我的项目我使用rest-client https://github.com/rest-client/rest-client易于使用一些示例require

'rest-client'

RestClient.get 'http://example.com/resource'

RestClient.get 'http://example.com/resource', {:params => {:id => 50, 'foo' => 'bar'}}

RestClient.get 'https://user:password@example.com/private/resource', {:accept => :json}

RestClient.post 'http://example.com/resource', :param1 => 'one', :nested => { :param2 => 'two' }

RestClient.delete 'http://example.com/resource'

并且可以像这样解析JSON

resource = RestClient::Resource.new 'http://example.com/resource'
json = JSON.parse(resource)

答案 1 :(得分:1)

我目前正在使用rest-client来使用API​​,并使用json-api-vanilla来解析响应。非常好用:

response = RestClient.get(url, headers = authorization_header)
doc = JSON::Api::Vanilla.parse(response.body)

doc.data[0].comments[1].author.last_name

答案 2 :(得分:1)

json_api_client是我所知道的最强大,功能最全的客户端,当涉及自动解析和利用JSON:API的所有部分时。它绝对不是完全成熟的(不是线程安全的,所有结果都作为集合返回 -  包括单个find,自定义选项仅限于为某些模块/方法注入完全替换)

但对于非常标准的用例来说,它非常棒 - 特别是如果您有权编写API的URL结构以匹配此库所期望的内容。