如何为 jhipster 网关应用程序定义 SERVER_API_URL?

How to define a SERVER_API_URL to a jhipster gateway application?

我有一个没有后端结构的 jhipster 网关应用程序。 它是使用 --skip-server 选项创建的。 当我 运行 带有突击队 GULP 的网关应用程序时,定义的端口是 8080 但 jhipster API 应用程序在 8081 上。如何定义这个默认值url?

我在文件里改了:

gulp/config.js

'use strict';

module.exports = {
    app: 'src/main/webapp/',
    dist: 'build/www/',
    swaggerDist: 'build/www/swagger-ui/',
    test: 'src/test/javascript/',
    bower: 'src/main/webapp/bower_components/',
    tmp: 'build/tmp',
    revManifest: 'build/tmp/rev-manifest.json',
    port: 8080,
    apiPort: 8081,
    liveReloadPort: 35729,
    uri: 'http://localhost:',
    constantTemplate:
        '(function () {\n' +
        '    \'use strict\';\n' +
        '    // DO NOT EDIT THIS FILE, EDIT THE GULP TASK NGCONSTANT SETTINGS INSTEAD WHICH GENERATES THIS FILE\n' +
        '    angular\n' +
        '        .module(\'<%- moduleName %>\')\n' +
        '<% constants.forEach(function(constant) { %>        .constant(\'<%- constant.name %>\', <%= constant.value %>)\n<% }) %>;\n' +
        '})();\n' };

但是没有用。我能做什么?

AngularJS 项目没有 SERVER_API_URL 变量 pre-configured。默认情况下,它仅存在于 Angular (v4+) JHipster 项目中。因此,所有 AngularJS 服务都会根据它们所在的相对路径(通常是端口 8080 或 9000)向 API 发送请求。 gulp 然后将来自端口 9000 的所有请求代理到 gulp/config.js 中定义的 API 端口。

要在整个项目中自定义 SERVER_API_URL,您可以将配置变量添加到 app.constants.js。为此,请将 SERVER_API_URL 添加到 gulpfile.js 中的 ngconstant:devngconstant:prod 部分。 运行 gulp 会将变量注入 app.constants.js.

一旦变量出现在 app.constants.js 中,您就可以将它注入到使用 AngularJS 的 $resource$http 的服务 JS 文件中。例如在 account.service.js 中,您应该注入 SERVER_API_URL 并将 URL 从 'api/account' 更改为 SERVER_API_URL + 'api/account'.

您可以通过 IDE 或使用像 grep 这样的工具搜索来查看使用 AngularJS 的 $resource$http 的完整文件列表:grep -R '$resource\|$http' ./src/main/webapp/app