在Angular 6服务中设置API URL的参数

时间:2018-09-13 12:47:31

标签: angular

我有一个get请求,该请求需要传递一些数据,我该如何在服务中做到这一点:

private campaignUrl = environment.apiUrl + '/campaign/';

    constructor(private http: HttpRequestService) { }

    getCampaign(uuid) {
        return this.http.post(this.campaignUrl);
    }

我需要在campaignUrl之后传递ID,这是我在swagger中的api网址:

  

/ api / campaign / {uuid} /

2 个答案:

答案 0 :(得分:3)

是获取还是发布?

无论如何,您都可以这样:

return this.http.post(this.campaignUrl + uuid);

答案 1 :(得分:2)

另一个答案就足够了,但是我会提供这个,因为您使用示例ES6 template literals(倒钩)来几乎在那里

private campaignUrl = environment.apiUrl + '/campaign/';

constructor(private http: HttpRequestService) { }

getCampaign(uuid) {
    return this.http.get(`${this.campaignUrl}/${encodeURI(uuid)}`);
}

或带有箭头

getCampaign = (uuid) => this.http.get(`${this.campaignUrl}/${encodeURI(uuid)}`);

请注意,您可能想调用encodeURI()(因为Angular不会帮您这样做)。如果您可以保证确保传递给getCampaign的字符串总是 一种uuid格式(nnnn-nnnn-...),则可以跳过此步骤。

此外,您在问题中说“获取请求”,但致电.post,因此我认为您的文本正确而代码不正确。