2016-05-17 54 views
1

是否存在用於在Rails應用程序中使用和解析JSON:API format的庫。一旦請求返回,我覺得模型對象應該看起來像ActiveRecord對象,類似於ActiveResourceFlexirest。但是,這兩個問題都讓我沒有更好地使用像Faraday這樣更通用的http適配器。我不得不做一些奇特的處理來提取深度嵌套的數組和哈希值,更不用說表示關聯了。是否有用於使用JSON-API格式的RESTful json api的gem | Ruby on Rails

我想知道別人是如何處理這種情況。我認爲我遇到的問題的一部分是「Json api」對於谷歌來說有點棘手,因爲它有相關的內容。

回答

1

的項目中,我用剩下的客戶端https://github.com/rest-client/rest-client易於使用的一些示例需要

'rest-client' 

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

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

RestClient.get 'https://user:[email protected]/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) 
+0

感謝您的回覆。 – Kit

+0

真正的問題是你從一個使用jsonapi資源格式化的api中得到什麼。結帳[jsonapi.org](http://jsonapi.org/)。當然,我只需鍵入組件即可。它只是需要大量的重複,這種方法否定了所有返回的上下文,如關係。 – Kit

+0

你是否嘗試JSONAPI ::資源 – Akram

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 
1

json_api_client是最強大的,全功能的客戶端我知道,當它涉及到所有的JSON的部分進行自動分析和利用:API。這絕對不是完全成熟,但(不是線程安全的,所有的結果都返回套 - 包括單find S,定製選項僅限於注射完全替代某些模塊/方法)

但它是非常標準非常偉大用例 - 尤其是如果您有權編寫API的URL結構以符合此庫的預期。