最好的方法是哪种-通过直接使用URL将API请求代理到另一台服务器(或)?

时间:2019-02-11 12:11:44

标签: angular rest api

在Angular中,我了解到我们可以代理API请求,也可以不使用任何代理配置而直接使用URL。我学到的两种方法是:

  

使用代理:

proxy.config.json

{
  "/api": {
    "target": "http://localhost:3000",
    "secure": false
  }
}

package.json:

编辑package.jsson的“开始”

"start": "ng serve --proxy-config proxy.conf.json",
  

无代理:

考虑任何服务文件以进行REST API调用:

user.service.ts

@Injectable()
export class UserService {

public API = 'http://localhost:8080';
 constructor(private http: HttpClient) {
  }

  getAllUsers(): Observable<any> {
    return this.http.get(this.API + '/users');
  }

}

那么,以下哪种方法是正确的处理方法? 我们如何在生产类型的环境中使用它? 如果还有其他替代方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

该代理仅在ng serve打开的开发模式下有效。对于生产模式,您需要对Nginx,Apache或任何其他为Angular项目提供服务的Web服务器应用程序执行相同的工作。

如果直接请求XHR呼叫,则应处理CORS问题。所以我推荐前一个。