4

次のグレープ ルート クラス定義があります。

module Api
  class Root < Grape::API
    mount Api::Version1



    add_swagger_documentation :mount_path => 'docs', 
                              :base_path => "/api", 
                              :markdown => true, 
                              :hide_documentation_path => true
  end
end

問題は、「:base_path」に完全な URL を含める必要があり、どこで取得できるかわかりません。ENV 変数を確認しましたが、現在のドメインに近いものはありません。また、いかなる種類の「リクエスト」オブジェクトもありません。Ruby で現在のドメイン、つまり HTTP_HOST 変数を取得する方法はありますか?

4

2 に答える 2

5

OK、ここを何年もさまよっている人にとっては(私のように)、これが私にとってうまくいった解決策です:

add_swagger_documentation base_path: lambda { |request| "http://#{request.host}:#{request.port}" }
                          ... #other options

基本的に、インスタンスを生成する proc を渡すだけでよくGrape::Request、そこからホストとポートのデータを取得できます。

于 2014-08-05T08:43:58.710 に答える
0

を使用してかなりの運がありましたhttp://localhost:9292/api。別の方法として、これらの設定を構成 yml ファイルに保持することも考えられます。RACK_ENV の値に基づいて設定することもできます。

于 2013-02-04T19:40:48.563 に答える