加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Rails Grape-Swagger:获取base_path的当前域名

发布时间:2020-12-17 02:37:12 所属栏目:百科 来源:网络整理
导读:我有以下Grape根类定义 module Api class Root Grape::API mount Api::Version1 add_swagger_documentation :mount_path = 'docs',:base_path = "/api",:markdown = true,:hide_documentation_path = true endend 问题是“:base_path”应该包含一个完整的UR
我有以下Grape根类定义

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变量?

解决方法

好吧,对于这些年后在这里游荡的人(就像我一样),这是对我有用的解决方案:

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

基本上你只需要传递一个产生Grape :: Request实例的proc,你可以从中获取主机和端口数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读