Estou usando o grape para criar uma API no Rails. O projeto ainda é muito recente, mas até agora atingi um ponto de bloqueio com minhas rotas.
Adicionei um endpoint de teste para ver se minhas versões estavam funcionando juntas e elas estavam
meu config/routes.rb
arquivo
Rails.application.routes.draw do
mount Root => '/'
end
meu app/api/root.rb
arquivo
require "grape"
class Root < Grape::API
format :json
mount Test::API
end
meu app/api/test/api.rb
arquivo
require "grape"
module Test
class API < Grape::API
get :world do
{
"response"=>"hello world!",
"name"=>"it is i"
}
end
end
end
e meu api/test/api_spec.rb
arquivo
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
Tudo isso funcionou perfeitamente bem, então tentei adicionar outra montagem ao meu app/api/root.rb
arquivo
require "grape"
class Root < Grape::API
format :json
mount Test::API
mount Endpoints::TodoAPI
end
e meu app/api/endpoints/todoapi.rb
arquivo
require "grape"
module Endpoints
class TodoAPI < Grape::API
end
end
quando tentei executar meu api/test/api_spec.rb
arquivo, de repente comecei a receber um erro
Failure/Error: mount Endpoints::TodoAPI
NameError:
uninitialized constant Endpoints::TodoAPI
mount Endpoints::TodoAPI
^^^^^^^^^
Did you mean? Endpoints::Todoapi
Eu tentei fazer a TodoAPI
aparência exatamente como o api
arquivo e comentar api
a montagem de, mas continuo recebendo o mesmo erro.