首页 > 解决方案 > CURL 的 GET 请求忽略了参数

问题描述

我正在尝试使用参数调用 GET 请求。问题是响应忽略了参数。

这是卷曲:

curl -X GET https://api.helpscout.net/v2/customers \
     -H 'Accept: application/json' \
     -H "Authorization: Bearer xxx" \
     -d 'query=(createdAt:[2019-06-01T00:00:00Z TO 2019-07-01T00:00:00Z])&status=all&page=1'

我从这个电话中得到的结果在 2019 年 6 月 1 日至 2019 年 7 月 1 日之间给我带来了“createdAt”=2019-07-22 而不是 createdAt。

如何调用 GET 请求并组合参数?

标签: bashshellapicurlcommand-line

解决方案


您似乎正在混合来自不同端点的参数。您问题中的端点是“客户”端点,但是,您使用的是“对话”端点中的参数。

根据文档(https://developer.helpscout.com/mailbox-api/endpoints/customers/list/),createdAt是一个选项sortField,不是query。这仅允许您使用createdAt以升序或降序对响应进行排序。

似乎没有根据该createdAt字段返回客户的选项。此外,“客户”没有status,而“对话”有status

使用“客户”端点和参数的createdAt查询如下所示:

sortField=createdAt&sortOrder=desc

这将按降序对响应进行排序,但不会按日期过滤它们。

一个 shell 解决方案是返回所有结果,然后使用一个库jq来按日期过滤你的 JSON 响应。这篇文章描述了如何按日期过滤jqjq filter json by dates


推荐阅读