好的,所以我发现了一些混乱,当我之前尝试将其全部放在公共目录中时,它们什么也没显示。
myapp/public/swagger-ui-1.1.1/files
1)我不知道这是否应该有所作为,但我在 config.ru 中加载 rails 应用程序和葡萄应用程序的顺序似乎对路由的处理方式产生了影响......我需要了解更多这是如何工作的。但是现在路线中安装的葡萄应用程序可以满足我的期望。结果,将 swagger-ui 解压缩到公共然后就可以了
http://appurl/swagger-ui-1.1.1/
给了我招摇的用户界面。如果有更多细节,我会添加更多细节。
编辑:因为会有像我这样需要帮助的其他用户,我将在下面概述。这很容易:
在资产管道中创建 /swagger 子目录 - 我是在供应商下完成的。将 lib 文件从 swagger UI 复制到这些子目录。创建一个带有索引操作的基本 docs_controller(可以为空)。创建一个 views/docs 目录并将 swagger-ui index.html 复制到其中。将样式表和 javascript 调用更改为 index.html 中的资产标签。为文档添加资源路由。将调用 window.swaggerUI 的 javascript 函数中的 discoveryURL 更改为“http://my.root.url/swagger_doc.json”(最好来自 ENV 变量)。
而已。它现在可以正常工作了。当 Swagger 在 docs 子域上运行时,我遇到的一个问题是,在 api 子域下使用我的 Grape API 是 CORS。通过添加以下内容可以轻松地在 Grape 中修复:
before do
header "Access-Control-Allow-Origin", "http://#{ENV["BASE_URL"]}"
header "Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT"
header "Access-Control-Max-Age", "1728000"
end
到你的葡萄 api.rb。希望一切都对某人有所帮助。