2017-02-28 38 views
0

私はAPIにドキュメントを追加するswagger-docsを使用していて、私の設定は次のようになります。別のベースコントローラから継承するコントローラにスワッガードキュメントを含めるにはどうすればよいですか?

Swagger::Docs::Config.register_apis({ 
    "1.0" => { 
    :api_file_path => "public/", 
    :base_path => "http://localhost:3000", 
    :clean_directory => true, 
    :base_api_controller => ActionController::API, 
    :attributes => { 
     :info => { 
     "title" => "Test", 
     "description" => "Test", 
     "contact" => "[email protected]", 
     "license" => "MIT", 
     "licenseUrl" => "https://opensource.org/licenses/MIT" 
     } 
    } 
    } 
}) 

これはActionController::APIから継承コントローラの[OK]を動作しますが、コントローラが継承したときにどのように私はDSLのメソッドが含まれます別のベースコントローラーから?認証のためknock宝石を使用している場合たとえば、:

class Users::AuthenticationController < Knock::AuthTokenController 
    swagger_controller :login, "Request a new JWT to issue authenticated requests" 

    swagger_api :create do 
    summary "Generates a JWT to be used for authenticated requests" 
    param :email, "auth[email]", :string, :required, "Email for authentication" 
    param :password, "auth[password]", :string, :required, "Password for authentication" 
    response :created 
    response :not_found, "Credentials specified were wrong" 
    end 

    def entity_class 
    User 
    end 
end 

をこのコードは、次のエラーが返されます。

undefined method `swagger_controller' for Users::AuthenticationController:Class 

私が使用方法を含めてみました:

include Swagger::Docs::ImpotentMethods 

しかし、これは」didnのエラーを取り除いたにもかかわらず、作業しませんでした。

答えて

1

これは本当にばかだったと私はそれが将来的に誰かに時間を節約できます願っています:

include Swagger::Docs::ImpotentMethods名前が言うのと同様に、メソッドのちょうど空の実装です。

代わりに、このようなメソッドを含めると、それはすべて正常に動作するはずです:

class Users::AuthenticationController < Knock::AuthTokenController 
    include Swagger::Docs::Methods 
end 
関連する問題