0

我有一个 vanilla rails 4 应用程序,我正在尝试添加一个版本化的 Grape API。rails 服务器启动正常,但是当我尝试访问 API URL ( http://localhost:3000/v1/user/ping) 时,出现错误:

undefined method `call' for V1:Module

到目前为止,我设置的 API 非常简单,但我不知道为什么它不起作用

根/app/api/api.rb:

# root/app/api/api.rb
class API < Grape::API
  mount V1
end

在版本文件夹中,我希望拥有该 API 版本支持的所有类:root/app/api/v1/user.rb:

# root/app/api/v1/user.rb
module V1
  class user < Grape::API
    get :ping do
      { :ping => params[:pong] || 'pong' }
    end
  end
end

根/配置/路由:

TestApp::Application.routes.draw do
  mount API => '/'
end
4

1 回答 1

3

我将我的 api 拆分为文件夹:

v1/resources/users.rb
v1/resources/orders.rb
v1/entities/order.rb
v2/resources/orders.rb

然后在 api.rb 中挂载单个文件...

mount V1::Resources::Users
mount V1::Resources::Orders
mount V2::Resources::Orders

接着:

version ['v2','v1'], cascade: true
version 'v2', cascade: true
于 2013-10-12T23:43:40.457 回答