在Post API调用的正文中即时传递参数

时间:2017-04-19 18:59:36

标签: javascript json rest angular post

我一直在我的Angular应用程序中使用API​​调用函数,其中某些参数可以在组件的使用位置和时间传递。这很容易处理。我不确定该怎么做是让用户在post调用的主体内传递一个参数给API。怎么做到这一点?在下面的这个例子中,我希望用户能够传递查询参数和值。这是我的服务函数API调用的样子:

getByQuery(page, pagesize) {
    const headers = new Headers({ 'Content-Type': 'application/json' });
    const options = new RequestOptions({ headers: this.headers });
    const body = { "addresses.postalCode" : "10009" };
    return this.http.post
      (`https://api.someurl.com/${this.ver}/clients/search?apikey=${this.key}&page=${page}&pagesize=${pagesize}`,
      body, options).map((res: Response) => res.json());
}

我如何处理此设置,以便此处呼叫正文中的项目可以即时传递?

我会简单地传入一个空对象吗?

getByQuery(page, pagesize, {}) {}

1 个答案:

答案 0 :(得分:1)

您只需向getByQuery函数添加一个新参数,并在调用函数时构建您的正文对象:

getByQuery(page, pagesize, body) {
    const headers = new Headers({ 'Content-Type': 'application/json' });
    const options = new RequestOptions({ headers: this.headers });
    return this.http.post
    (`https://api.someurl.com/${this.ver}/clients/search?apikey=${this.key}&page=${page}&pagesize=${pagesize}`,
    body, options).map((res: Response) => res.json());
}

在调用你的函数时:

getByQuery(1, 20, { "addresses.postalCode" : "10009" });