我正在使用 Grape 在 Rails 中创建 API。这个项目仍然很新鲜,但到目前为止我的路线已经遇到了障碍。
我添加了一个测试端点来查看我的版本是否可以一起工作,并且它们是
我的config/routes.rb
文件
Rails.application.routes.draw do
mount Root => '/'
end
我的app/api/root.rb
文件
require "grape"
class Root < Grape::API
format :json
mount Test::API
end
我的app/api/test/api.rb
文件
require "grape"
module Test
class API < Grape::API
get :world do
{
"response"=>"hello world!",
"name"=>"it is i"
}
end
end
end
和我的api/test/api_spec.rb
文件
require 'rails_helper'
describe 'Endpoints' do
context 'when the endpoint "world" is hit' do
context 'the response' do
let(:res) { JSON.parse(response.body)['response'] }
it 'returns hello world' do
get '/world'
expect(res).to eq 'hello world!'
end
end
end
end
所有这些都运行得很好,所以我尝试在我的app/api/root.rb
文件中添加另一个安装
require "grape"
class Root < Grape::API
format :json
mount Test::API
mount Endpoints::TodoAPI
end
和我的app/api/endpoints/todoapi.rb
文件
require "grape"
module Endpoints
class TodoAPI < Grape::API
end
end
当我尝试运行我的api/test/api_spec.rb
文件时,突然开始出现错误
Failure/Error: mount Endpoints::TodoAPI
NameError:
uninitialized constant Endpoints::TodoAPI
mount Endpoints::TodoAPI
^^^^^^^^^
Did you mean? Endpoints::Todoapi
我试图使TodoAPI
外观与文件完全相同api
,并注释掉api
的 mount 但我不断收到相同的错误。