1

我目前正在构建一个 API 来访问特定所有者的博客上的所有帖子。我想将它们显示为博客模型下的嵌套 json。

class API < Grape::API
format :json
prefix "api"
resource "posts" do
  get ':id' do
    owner = Owner.find(params[:id])
    present owner.blogs.each do |b|
        present b
        b.posts.each do  |p|
            present p
        end
    end
  end
end
end

可以安全地假设所有者拥有许多博客,而所有者又拥有许多帖子。

来源: https ://github.com/intridea/grape

4

1 回答 1

5

也许你会发现有用的葡萄实体宝石:https ://github.com/intridea/grape-entity

有了它,您可以为您的模型定义一个“嵌套实体”:

module YourApp
  module Entities
    class Blog < Grape::Entity
      expose :id, :blog_title
      expose :posts, using: YourApp::Entities::Post
    end

    class Post < Grape::Entity
      expose :id, :post_title
    end
  end
end

而且,在端点:

# ...
present owner.blogs, with: YourApp::Entities::Blog
# ...

我希望这有帮助。

于 2013-11-05T22:43:26.513 回答