2013-11-28 2 views
1

/api/ping을 테스트하면 "PONG"으로 출력됩니다. 그러나 /api/users/:user_id에 대한 JSON 응답을 기대하지만 발견되지 않아서 네임 스페이스의 before 블록이 호출되지 않습니다. grape API 끝점을 "찾을 수 없음"이라고 정의 했음에도 불구하고

class Users < Grape::API 
    namespace ':user_id' do 
    before do 
     @user = User.find(params[:user_id]) 
    end 

    get do 
     @user 
    end 
    end 
end 

class API < Grape::API 
    format :json 
    default_format :json 
    prefix 'api' 

    get 'ping' do 
    'PONG' 
    end 

    mount Users => 'users' 
end 

그리고 RSpec에 테스트

: 내가 잘못 뭐하는 거지

let(:user) { create(:user) } 
before { get "/api/users/#{user.id}" } 

?

답변

0

포도 문서에 나와있는 내용이 유효하지만, mount GrapeSubClass => 'prefix' 구문을 사용하여 예제 작업을 할 수 없었으며 포기했습니다. 나는 당신의 주요 API 클래스에 다음과 같은 간단한 변경을 할 경우

그러나, 모두가 작동하는 것 같다 :

class API < Grape::API 
    format :json 
    default_format :json 
    prefix 'api' 

    get 'ping' do 
    'PONG' 
    end 

    # mount second API class in a namespace 
    namespace 'users' do 
    mount Users 
    end 
end