如何在一个可配置的位置创建角度服务类的根URL

时间:2019-06-20 07:23:22

标签: angular

在Angular服务类中,我如下定义了Web api的根URL

readonly rootURL:string = "https://abc.xyz.com" ;

我现在在所有服务类中都具有此功能,以向Webapi发出GET \ POST ...请求。

我的问题

因此,如果必须更改我的webapi URL,则需要更改所有服务类中定义的rootURL。

我的要求

即使在部署后,如何也将rootURL保留在一个位置,并尽可能将其保留为可配置的位置。

2 个答案:

答案 0 :(得分:0)

我们可以创建代理配置设置,并且可以在其中更改目标网址。

  

proxy.config.json

 {
  "/api": {
    "target": "http://localhost:4200/",
    "secure": false
  },
  "/user-api": {
    "target": "http://your-targeted-url.com",
    "secure": false,
    "changeOrigin": true

  }
}
  

UserService.ts

 @Injectable({
  providedIn: 'root'
})
export class UserService {

 getUser():  Observable<User> {
     return this.http.get<any>(/user-api/project/user) // we are not 
                                                 passing base url here, we only change the base targeted url in the proxy-config.json
    .pipe(map(data => {
      return data.body;
    }));
  }



getAllUsers():  Observable<User[]> {
         return this.http.get<any>(/user-api/project/users) // no base 
                                                             url
        .pipe(map(data => {
          return data.body;
        }));
      }

}

答案 1 :(得分:0)

其中一种方法是创建一个globals.ts文件并在其中添加变量,例如:

// globals.ts
'use strict';

export const rootURL='abc.com';

然后在您的服务中,您可以导入并使用变量,例如:

import { rootURL } from './globals'