In every examples I see, people only implement one giant api.rb file. Ex:
The class in post.rb should be Post, not API. Then you can mount the Post API inside class API.
class API < Grape::API
mount Blog::Post => '/'
end
To avoid confusion I would put Post in a Resources namespace, too or rename it to PostAPI.
I found it not working for path prefix:
mount Blog::Post => '/blog'
doesn't work if you want have prefix the path.
use
namespace :blog do
mount Blog::Post
end
Hope it helps!