尝试使用doorkeeper创建API。当我登录到我的帐户并且会话用户通过身份验证并访问我的API时
http://localhost:3000/api/v1/trials
我得到一个路由错误页面说"未初始化常数TrialsController"和rake路由列表。包括:
trials_path GET /api/v1/trials(.:format) trials#index
我使用rails版本4.0.3,ruby 2.0.0。这是我的配置/路由。rb文件:
MyApp::Application.routes.draw do
devise_for :users
use_doorkeeper :scope => 'oauth2' do
end
root :to => 'welcome#index'
scope 'api' do
scope 'v1' do
resources :trials
end
end
end
我的app/dir包含:
app/
controllers/
application_controller.rb
welcome_controller.rb
api/
v1/
trials_controller.rb
我trials_controller 。rb:
module Api::V1
class TrialsController < ::ApplicationController
doorkeeper_for :all
def index
@trials = Trials.all
end
def show
...
end
...
end
end
更新:当我改变路线时。将轨迹控制器命名为:
namespace :api do
namespace :v1 do
resources :trails
end
end
我得到一个"no route matches"错误当尝试访问:
http://localhost:3000/api/v1/trials(.json)
(带或不带扩展名。)
我还添加了试验#index:
def index
@trials = Trials.all
respond_to do |format|
format.json { render :json => @trials }
format.xml { render :xml => @trials }
end
end
也不走运
我不确定它会如何对抗doorkeeper,但我在一个应用程序中有一个类似的API结构。我在我的路由中有以下内容(与Sergio注意到的相匹配)
namespace :api, defaults: {format: 'json'} do
namespace :v1 do
resources :api_controller_1
resources :api_controller_2
end
end
下面是我如何构建我的API类:
module Api
module V1
class ApiNamedController < ApplicationController
# code
end
end
end