我正在编写API包装器并遇到一个我不确定如何解决的问题。
这是法拉第设置:
@connection = Faraday.new(url: @api_url, params: params,
headers: default_headers,
ssl: { verify: true } ) do |faraday|
faraday.use FaradayMiddleware::Mashify
faraday.use FaradayMiddleware::ParseJson, content_type: /\bjson$/
faraday.use FaradayMiddleware::FollowRedirects
faraday.adapter Faraday.default_adapter
end
这适用于我正在制作的95%的API调用 - 它就像我需要的那样解析JSON而Mashify就是这样。大。
问题是当API返回未包装在JSON对象中的JSON值时。 API调用是这样的:
https://hacker-news.firebaseio.com/v0/maxitem.json
我可以看到这不是jsonlint中的有效JSON对象(截图如下)。
我是否需要单独为此呼叫重新配置新的法拉第实例?这看起来有些多余,但它明显地在FaradayMiddleware::ParseJson
班上爆发。
我的RSpec测试返回:
Failure/Error: latest = client.max_item
Faraday::ParsingError:
757: unexpected token at '8438316'
感谢任何帮助。