【发布时间】:2015-11-16 00:42:29
【问题描述】:
我希望能够在我的 jhipster 应用程序中看到 swagger rest api 文档,即使它在 prod 配置文件下运行。目前它只显示在开发配置文件中,我不确定这是在哪里配置的。
【问题讨论】:
-
如果您按照 zapl 回答启用它,您可以通过指向
/swagger-ui/index.html来查看它
我希望能够在我的 jhipster 应用程序中看到 swagger rest api 文档,即使它在 prod 配置文件下运行。目前它只显示在开发配置文件中,我不确定这是在哪里配置的。
【问题讨论】:
/swagger-ui/index.html 来查看它
在最新版本中,将代码添加到 application.prod.yml
profiles:
include:
-swagger
【讨论】:
在 JHipster 4.5.6 版本中,使用 Maven,您可以直接启用 swagger 配置文件:
./mvnw -Pprod,swagger
使用 Gradle,您还可以直接使用这些配置文件:
./gradlew -Pprod -Pswagger
请注意,默认情况下,swagger 配置文件在 prod 中被禁用,而在 dev 中通过设置 application.yml 中的 spring.profiles.include 属性启用。
更多信息,请参考jhipster profiles
【讨论】:
Swagger 配置在config/apidoc/SwaggerConfiguration.java
您可以简单地删除排除 prod 配置文件的行:
@Profile("!"+Constants.SPRING_PROFILE_PRODUCTION)
【讨论】:
不,永远不要那样做。请参阅 webapp/app/app.constants.js 文件。它会在你运行 gulp 命令时自动生成。如果您想展示 Swagger API,请查看该文件。
(function () {
"use strict";
// DO NOT EDIT THIS FILE, EDIT THE GULP TASK NGCONSTANT SETTINGS INSTEAD WHICH GENERATES THIS FILE
angular.module("sosickApp")
.constant("ENV", "dev")
.constant("VERSION", "0.0.1-SNAPSHOT")
;
})();
还有 gulpfile.js 任务:
gulp.task('ngconstant:dev', function () {
return ngConstant({
dest: 'app.constants.js',
name: 'sosickApp',
deps: false,
noFile: true,
interpolate: /\{%=(.+?)%\}/g,
wrap:
'(function () {\n' +
' "use strict";\n' +
' // DO NOT EDIT THIS FILE, EDIT THE GULP TASK NGCONSTANT SETTINGS INSTEAD WHICH GENERATES THIS FILE\n' +
' {%= __ngModule %}\n' +
'})();\n',
constants: {
ENV: 'dev',
VERSION: util.parseVersion()
}
})
.pipe(gulp.dest(config.app + 'app/'));
});
祝你好运!
【讨论】:
也许这太难回答了,但在当前的 JHipster 上,可以通过命令行参数或通过 2 个文件启用它:
spring: profiles: active: dev include: - swagger
isSwaggerEnabled: 真
然后你可以在浏览器上通过 /swagger-ui/index.html 访问 希望这会有所帮助
【讨论】:
对于在这里的每个人来说,因为想要用谷歌搜索为什么在 heroku 安装中没有在 prod 上启用 swagger,尽管将其设置为正确的 swagger 配置文件属性,如这里的答案中 application-prod.yml、application-heroku.yml、 SPRING_PROFILES_ACTIVE 环境变量,mvn 启动参数在MAVEN_CUSTOM_OPTS 环境变量在heroku:config 自定义环境变量...
看来,heroku prod 运行将使用的实际配置文件位于 Procfile 中。因此,在尝试了上述所有可能性后,我必须对其进行更改。希望这条消息能节省一些人的时间。
启用 swagger to prod 不是一个好习惯,但实际上可以满足业务需求,因此我们甚至不尝试将其设为私有。
【讨论】:
使用 jhipster 7.4.1 和 Heroku:
编辑您的Procfile
代替
web: java $JAVA_OPTS -Xmx256m -jar target/*.jar --spring.profiles.active=prod,heroku
放这个
web: java $JAVA_OPTS -Xmx256m -jar target/*.jar --spring.profiles.active=prod,api-docs,heroku
即将api-docs 添加到活动配置文件中。
我现在可以在 PROD 中看到管理/API 菜单
【讨论】:
最新的 JHipster 允许设置显示/隐藏 Swagger API。
【讨论】:
使用 jhipster 7.3.0
./mvnw -Pprod,api-docs
你应该看到下面的日志
----------------------------------------------------------
Application 'APP' is running! Access URLs:
Local: http://localhost:9099/
External: http://127.0.0.1:9099/
Profile(s): [prod, api-docs]
----------------------------------------------------------
【讨论】: