1、gem准备
gem 'grape','~> 0.8.0'
gem 'grape-jbuilder', '~> 0.2.0'
gem 'jbuilder', '~> 2.0'
2、建立目录app/api/api.rb然后编写api.rb如下
class API < Grape::API
version 'v1', using: :path
format :json
formatter :json, Grape::Formatter::Jbuilder
prefix :api
resource :aaa do
desc "Return a public timeline."
get :test do
@jacket = Jacket.first
end
end
end
3、配置
在config/application.rb 下添加
config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]
在config/routes 下添加
mount API => '/'
此时重启服务器就ok了。
测试自己api http://localhost:3000/api/v1/aaa/test
4、对于jbuilder
首先建立views/api/aaa/test.jbuilder目录
修改api在api名称后边加上,jbuilder:"aaa/test"
在test.jbuilder里边加入需要显示的信息
要在api里边加入
formatter :json, Grape::Formatter::Jbuilder
在 config/application.rb加入
config.middleware.use(Rack::Config) do |env| env['api.tilt.root'] = Rails.root.join 'app', 'views', 'api' endok大功告成