【问题标题】:How can I enable the swagger ui on a jhipster app in prod profile?如何在 prod 配置文件中的 jhipster 应用程序上启用 swagger ui?
【发布时间】:2015-11-16 00:42:29
【问题描述】:

我希望能够在我的 jhipster 应用程序中看到 swagger rest api 文档,即使它在 prod 配置文件下运行。目前它只显示在开发配置文件中,我不确定这是在哪里配置的。

【问题讨论】:

  • 如果您按照 zapl 回答启用它,您可以通过指向 /swagger-ui/index.html 来查看它

标签: java swagger jhipster


【解决方案1】:

在最新版本中,将代码添加到 application.prod.yml

profiles:
  include: 
    -swagger

【讨论】:

  • 有一种情况(heroku)这无济于事,请参阅下面的解释
【解决方案2】:

在 JHipster 4.5.6 版本中,使用 Maven,您可以直接启用 swagger 配置文件:

./mvnw -Pprod,swagger

使用 Gradle,您还可以直接使用这些配置文件:

./gradlew -Pprod -Pswagger

请注意,默认情况下,swagger 配置文件在 prod 中被禁用,而在 dev 中通过设置 application.yml 中的 spring.profiles.include 属性启用。

更多信息,请参考jhipster profiles

【讨论】:

【解决方案3】:

Swagger 配置在config/apidoc/SwaggerConfiguration.java

您可以简单地删除排除 prod 配置文件的行:

@Profile("!"+Constants.SPRING_PROFILE_PRODUCTION)

【讨论】:

  • 为了在 jhipster 导航栏中看到 API 选项,我还必须从 navbar.html 中的
  • 标记中删除 ng-hide="inProduction" 属性
  • 请注意,swagger 不适用于 JHipster 支持的所有身份验证方案,这就是它在生产中被禁用的原因
  • 【解决方案4】:

    不,永远不要那样做。请参阅 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/'));
    });
    

    祝你好运!

    【讨论】:

      【解决方案5】:

      也许这太难回答了,但在当前的 JHipster 上,可以通过命令行参数或通过 2 个文件启用它:

      • application.yml
      spring:
      profiles:
          active: dev
          include:
              - swagger
      
      • 应用程序配置文件.ts 使用 isSwaggerEnabled 查找一些行,然后更改为 true

        isSwaggerEnabled: 真

      然后你可以在浏览器上通过 /swagger-ui/index.html 访问 希望这会有所帮助

      【讨论】:

      • 我说得对吗,TypeScript 部分只是用于启用-禁用链接?我在生成器节点模块的代码中看到了这个变量,但实际上并没有在代码中,所以它只是去年才添加的?
      【解决方案6】:

      对于在这里的每个人来说,因为想要用谷歌搜索为什么在 heroku 安装中没有在 prod 上启用 swagger,尽管将其设置为正确的 swagger 配置文件属性,如这里的答案中 application-prod.ymlapplication-heroku.ymlSPRING_PROFILES_ACTIVE 环境变量,mvn 启动参数在MAVEN_CUSTOM_OPTS 环境变量在heroku:config 自定义环境变量...

      看来,heroku prod 运行将使用的实际配置文件位于 Procfile 中。因此,在尝试了上述所有可能性后,我必须对其进行更改。希望这条消息能节省一些人的时间。

      启用 swagger to prod 不是一个好习惯,但实际上可以满足业务需求,因此我们甚至不尝试将其设为私有。

      【讨论】:

        【解决方案7】:

        使用 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 菜单

        【讨论】:

          【解决方案8】:

          最新的 JHipster 允许设置显示/隐藏 Swagger API。

          【讨论】:

            【解决方案9】:

            使用 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 应用程序是使用 --no-client 选项生成的呢?
            猜你喜欢
            相关资源
            最近更新 更多
            热门标签