如何在产品配置文件中的 jhipster 应用程序上启用 swagger ui?
How can I enable the swagger ui on a jhipster app in prod profile?
我希望能够在我的 jhipster 应用程序中看到 swagger rest api 文档,即使它在 prod 配置文件下 运行。目前它只显示在开发配置文件中,我不确定它是在哪里配置的。
Swagger配置在config/apidoc/SwaggerConfiguration.java
您可以简单地删除排除产品配置文件的行:
@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 设置为 show/hide Swagger API。
在最新版本中将代码添加到 application.prod.yml
profiles:
include:
-swagger
在JHipster 4.5.6 版本中,通过Maven,您可以直接启用swagger profiles:
./mvnw -Pprod,swagger
使用 Gradle,您还可以直接使用这些配置文件:
./gradlew -Pprod -Pswagger
请注意,默认情况下,通过在 application.yml.[=22] 中设置 spring.profiles.include 属性,swagger 配置文件在生产中禁用并在开发中启用=]
有关详细信息,请参阅 jhipster profiles
也许这太难回答了,但在当前的 JHipster 上,可以通过命令行参数或通过 2 个文件启用它:
- application.yml
spring:
profiles:
active: dev
include:
- swagger
- application-profile.ts
找到一些带有 isSwaggerEnabled 的行,然后更改为 true
isSwaggerEnabled: true
然后就可以在浏览器上通过/swagger-ui/index.html访问
希望这有帮助
致所有来到这里的人,因为想 google 弄清楚为什么尽管设置了正确的 swagger
配置文件 属性,但在 heroku 安装的产品中没有启用 swagger此处的答案为 application-prod.yml
、application-heroku.yml
、SPRING_PROFILES_ACTIVE
环境变量,mvn
启动参数在 MAVEN_CUSTOM_OPTS
环境变量中,在 heroku:config
自定义环境变量中...
看起来 heroku prod 运行 将使用的实际配置文件在 Procfile
中。所以我必须在尝试了上述所有可能性后更改它。希望这条消息能节省一些人的时间。
启用 swagger to prod 不是一个好的做法,但实际上可以满足业务需求,因此我们甚至不会尝试将其设为私有。
使用 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]
----------------------------------------------------------
并且在管理面板中,您可以在菜单下看到 API
使用 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 rest api 文档,即使它在 prod 配置文件下 运行。目前它只显示在开发配置文件中,我不确定它是在哪里配置的。
Swagger配置在config/apidoc/SwaggerConfiguration.java
您可以简单地删除排除产品配置文件的行:
@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 设置为 show/hide Swagger API。
在最新版本中将代码添加到 application.prod.yml
profiles:
include:
-swagger
在JHipster 4.5.6 版本中,通过Maven,您可以直接启用swagger profiles:
./mvnw -Pprod,swagger
使用 Gradle,您还可以直接使用这些配置文件:
./gradlew -Pprod -Pswagger
请注意,默认情况下,通过在 application.yml.[=22] 中设置 spring.profiles.include 属性,swagger 配置文件在生产中禁用并在开发中启用=]
有关详细信息,请参阅 jhipster profiles
也许这太难回答了,但在当前的 JHipster 上,可以通过命令行参数或通过 2 个文件启用它:
- application.yml
spring: profiles: active: dev include: - swagger
- application-profile.ts
找到一些带有 isSwaggerEnabled 的行,然后更改为 true
isSwaggerEnabled: true
然后就可以在浏览器上通过/swagger-ui/index.html访问 希望这有帮助
致所有来到这里的人,因为想 google 弄清楚为什么尽管设置了正确的 swagger
配置文件 属性,但在 heroku 安装的产品中没有启用 swagger此处的答案为 application-prod.yml
、application-heroku.yml
、SPRING_PROFILES_ACTIVE
环境变量,mvn
启动参数在 MAVEN_CUSTOM_OPTS
环境变量中,在 heroku:config
自定义环境变量中...
看起来 heroku prod 运行 将使用的实际配置文件在 Procfile
中。所以我必须在尝试了上述所有可能性后更改它。希望这条消息能节省一些人的时间。
启用 swagger to prod 不是一个好的做法,但实际上可以满足业务需求,因此我们甚至不会尝试将其设为私有。
使用 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]
----------------------------------------------------------
并且在管理面板中,您可以在菜单下看到 API
使用 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 菜单