如何在产品配置文件中的 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.ymlapplication-heroku.ymlSPRING_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 菜单