Question

Hi I am developing a simple api in ruby using intridea's grape. Let's say we have this:

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

  resource :bar do
  end

end

How could I make it so that the declaration for :foo and :bar are in separate files? Basically, I wanted to know if it is possible to have something similar to rails controllers where there are multiple files to organize the code.

I hope someone can give me an insight on how to achieve this.

Was it helpful?

Solution

Ruby has open classes, so you should be able to simply move those to separate files.

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

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

OTHER TIPS

The README recommends you use mount:

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

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

class API < Grape::API
  mount Foo
  mount Bar
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top