我们怎样才能将葡萄api资源分成多个文件?

Les*_*ial 4 ruby api rest ruby-on-rails grape-api

嗨,我正在使用intridea的葡萄开发一个简单的红宝石api.假设我们有这个:

class API_v1 < Grape::API
  resource :foo do
  end

  resource :bar do
  end

end
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做,以便声明:foo:bar单独的文件?基本上,我想知道是否有可能有类似于rails控制器的东西,其中有多个文件来组织代码.

我希望有人能给我一个如何实现这一目标的见解.

Ser*_*sev 8

Ruby有开放类,所以你应该能够简单地将它们移动到单独的文件中.

# foo.rb
class API_v1 < Grape::API
  resource :foo do
  end
end

# bar.rb
class API_v1 < Grape::API
  resource :bar do
  end
end
Run Code Online (Sandbox Code Playgroud)


dB.*_*dB. 8

README建议您使用mount:

class Foo < Grape::API
  resource :foo ... 
end

class Bar < Grape::API
  resource :bar ... 
end

class API < Grape::API
  mount Foo
  mount Bar
end
Run Code Online (Sandbox Code Playgroud)