【发布时间】:2013-07-24 13:41:36
【问题描述】:
我在 Rails 4 应用程序中设置了基于 Grape 的 API。我想将其中一个 API 调用生成的 json 呈现到 inline 标记 中的视图中 - 特别是使 JSON 数据可用于 angularjs 视图以避免(JSON API)在页面加载后调用服务器。
任何想法如何将 Grape API 呈现为字符串?
/app/api/api.rb
class API < Grape::API
version 'v1', using: :path
format :json
get '/dashboard' do
...
end
end
views/dashboard/index.html.erb
<script>
<%= render some-way-to-render-to-text('/api/v1/dashboard.json') %>
</script>
我可以使用 get http 请求来渲染它,但我希望避免 http 调用的开销。我宁愿直接调用 API 类。
【问题讨论】:
-
请解释你为什么要这样做,听起来有点奇怪。
-
优化。仪表板页面是使用 angular.js 构建的 - 它所做的第一件事是从服务器请求 dashboard.json 并使用返回的数据生成/呈现视图。但这会导致一个额外的服务器请求并减慢页面呈现速度。我想在页面被渲染并使用 ng-init 时内联渲染 json 数据,因此 angular.js 不必调用dashboard.json。同样,这是一项改善首页加载体验的优化。
标签: ruby-on-rails grape-api render-to-string