PagerDuty API获取特定日期的所有事件

时间:2016-05-05 14:41:55

标签: rest

我想通过API检索特定日期发生的所有PagerDuty事件。我正在使用以下GET请求:

curl -i -H "Content-type: application/json" \ 
    -H "Authorization: Token token=wouldntyouliketoknow" \
    -X GET \
    --data-urlencode "since=2016-05-03T00:00Z" \
    --data-urlencode "until=2016-05-03T23:59Z" \ 
    --data-urlencode "offset=100" \
    "https://my.pagerduty.com/api/v1/incidents"

返回的数据只有一个问题。返回事件的时间戳表明事件是针对不同的日期,而不是我在sinceuntil参数中指定的日期。我通过UI检查了指定日期有超过100个事件。

如何修改查询以返回指定日期的所有事件?

1 个答案:

答案 0 :(得分:2)

您指定的时间是UTC。我的猜测是你在另一个时区,这使得结果看起来不正确。

日期以ISO 8601格式指定(根据PagerDuty's Developer documentation),因此您可以指定带时区的日期和时间(假设为UTC-7),如下所示:

2016-05-03T23:59-07

如果你在,比如UTC + 3,你可以使用:

2016-05-03T23:59+03

PagerDuty的API returns at most 100 records, but varies per endpoint,因此您需要增加offset参数并在每页上进行API调用。

前100名:

curl -i -H "Content-type: application/json" \ 
-H "Authorization: Token token=wouldntyouliketoknow" \
-X GET \
--data-urlencode "since=2016-05-03T00:00Z" \
--data-urlencode "until=2016-05-03T23:59Z" \ 
--data-urlencode "limit=100" \
"https://my.pagerduty.com/api/v1/incidents"

第二个100:

curl -i -H "Content-type: application/json" \ 
-H "Authorization: Token token=wouldntyouliketoknow" \
-X GET \
--data-urlencode "since=2016-05-03T00:00Z" \
--data-urlencode "until=2016-05-03T23:59Z" \ 
--data-urlencode "limit=100" \
--data-urlencode "offset=100" \
"https://my.pagerduty.com/api/v1/incidents"

干杯!