Search code examples
ruby-on-railsrubyapirestgrape-api

How could we separate grape api resources into multiple files?


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.


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