在Angular服务类中,我如下定义了Web api的根URL
readonly rootURL:string = "https://abc.xyz.com" ;
我现在在所有服务类中都具有此功能,以向Webapi发出GET \ POST ...请求。
我的问题
因此,如果必须更改我的webapi URL,则需要更改所有服务类中定义的rootURL。
我的要求
即使在部署后,如何也将rootURL保留在一个位置,并尽可能将其保留为可配置的位置。
答案 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'