使用 REST API 调用来获取分析数据
您可以使用 API Manager REST API 调用来获取特定目录和 API 提供者组织的分析数据。
关于此任务
REST API 调用将返回包含分析数据的 JSON 对象。JSON 对象包含的信息与在使用 API Manager 用户界面查看可视化的原始数据时看到的 API 事件记录相同。
过程
要获取目录和 API 提供者组织的分析数据,请发出以下调用:
GET /v1/orgs/{orgId}/environments/{envId}/events
其中:
- {orgId} 是 API 提供者组织的 URL 路径段或标识。
- {envId} 是目录的 URL 路径段或标识。
下表详述了该调用的查询参数:
| 参数 | 描述 | 缺省值 |
|---|---|---|
| after | 要获取分析数据的时间段的开始时间,采用 ISO8601 格式。 | 当前时间减去 24 小时 |
| before | 要获取分析数据的时间段的结束时间,采用 ISO8601 格式。 | 当前时间 |
| limit | 要在单个调用中返回的分析事件的数量。如果事件总数大于指定的限制,那么要获取剩余的事件,就需要发出更多调用并提供 next 参数。 | 100 |
| next | 首次调用 API 时返回的标识。在后续调用中提供此标识可获取下一个事件集。每个事件集中返回的事件数由 limit 参数值决定。 | (不适用) |
| fields | 每个事件中要包含的事件字段的列表。指定字段时,可以使用逗号作为分隔符。 如果只需要其中部分事件字段(而不是全部),请使用此参数。 |
缺省情况下返回所有字段 |
| timezoneOffset | 时区偏移值,采用 ISO8601 格式。 | 0 |
请求将使用 HTTP 基本认证来认证。有关更多信息,请参阅认证请求。
样本调用和响应
以下示例显示从浏览器地址栏发出的、用于获取某个目录和 API 提供者组织的分析数据的调用的样本格式。在 URL 中,指定要查询的 API Manager 服务器的主机地址,并且任何查询参数都会附加前置 ? 符号且用 & 符号进行分隔。安全登录表单将提示您输入用户名和密码以便向 API Manager 服务器进行认证。(这些 API Manager 服务器详细信息也用于访问 API Manager
UI。)
https://api-manager-server.company.com/v1/orgs/macs-shack/environments/sb/events
https://api-manager-server.company.com/v1/orgs/57cd809ce4b09c68a2183832/environments/57cd80a6e4b09c68a218387b/events
https://api-manager-server.company.com/v1/orgs/smallorg/environments/dev/events?limit=2
https://api-manager-server.company.com/v1/orgs/macs-shack/environments/sb/events?after=2016-08-01T00:00:00.000&before=2016-09-30T23:59:59.999
以下示例显示作为 curl 命令发出的、用于获取某个目录和 API 提供者组织的分析数据的调用的样本格式。在这些命令中,因特网协议字符串指定要查询的 API Manager 服务器的主机地址,并且任何查询参数都会附加前置 ? 符号且用 & 符号进行分隔。-u 选项仅指定用户名,而不是用户名和密码组合 (user_name:password),从而阻止以明文显示密码。
![[指示这在 Linux 平台上适用的图标]](./../buildfiles/icon_linux.gif)
![[指示这在 Windows 平台上适用的图标]](./../buildfiles/icon_win.gif)
curl -k -X GET -u 'username@company.com' 'https://api-manager-server.company.com/v1/orgs/macs-shack/
environments/sb/events?after=2016-08-01T00:00:00.000&before=2016-09-30T23:59:59.999'
curl -k -X GET -u "username@company.com" "https://api-manager-server.company.com/v1/orgs/macs-shack/
environments/sb/events?after=2016-08-01T00:00:00.000&before=2016-09-30T23:59:59.999&limit=2"
限制: billing 对象字段仅在 V5.0.7.2 和更高版本中受支持。
以下示例显示从浏览器发出的调用,然后显示对应的响应中的所有事件字段。将发出该调用以返回两个分析事件 (limit=2),并包含 next 参数以请求更多事件。
https://api-manager-server.company.com/v1/orgs/macs-shack/environments/sb/events?next&limit=2
{
"totalCalls": 5,
"next": "5792250fe4b0838bc6abfc0a",
"nextHref": "https://api-manager-server.company.com/v1/orgs/macs-shack/environments/sb/events?next=5792250fe4b0838bc6abfc0a",
"calls": [
{
"datetime": "2016-07-22T13:51:08.658Z",
"apiName": "fins",
"apiVersion": "1.0.0",
"appName": "Surfboards",
"catalogName": "sb",
"planName": "default",
"planVersion": "1.0.0",
"productName": "surfing-products",
"productVersion": "1.0.0",
"devOrgName": "bluebottle-boards",
"resourceName": "/stocklist",
"timeToServeRequest": 243,
"bytesSent": 115,
"requestProtocol": "https",
"requestMethod": "GET",
"uriPath": "/macs-shack/sb/surf/stocklist",
"queryString": "",
"statusCode": "200 OK",
"requestHeaders": "",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
"requestBody": "",
"responseHeaders": "",
"responseBody": "",
"latency": "Initialization=0ms : Start=8ms : PlanRateLimits=4ms : Plan Limit=2ms : Finservice=221ms : PlanRateLimits=8ms",
"rateLimit": {
"per-minute": {
"limit": "100",
"count": "5",
"period": "60",
"reject": "false",
"shared": "true"
}
},
"logPolicy": "activity",
"orgName": "macs-shack",
"resourcePath": "get",
"productTitle": "Surfing Products",
"clientGeoIp": {
"ip": "9.20.152.215",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"continent_code": "NA",
"region_name": "NC",
"city_name": "Durham",
"postal_code": "27709",
"latitude": 35.994,
"longitude": -78.8986,
"dma_code": 560,
"area_code": 919,
"timezone": "America/New_York",
"real_region_name": "North Carolina",
"location": [
-78.8986,
35.994
]
},
"billing": {
"trial_period_days": "0",
"amount": "0",
"currency": "USD",
"model": "free",
"provider": "none"
}
"gatewayGeoIp": {
"ip": "9.20.98.109",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"continent_code": "NA",
"region_name": "NC",
"city_name": "Durham",
"postal_code": "27709",
"latitude": 35.994,
"longitude": -78.8986,
"dma_code": 560,
"area_code": 919,
"timezone": "America/New_York",
"real_region_name": "North Carolina",
"location": [
-78.8986,
35.994
]
}
},
{
"datetime": "2016-07-22T13:51:07.375Z",
"apiName": "fins",
"apiVersion": "1.0.0",
"appName": "Surfboards",
"catalogName": "sb",
"planName": "default",
"planVersion": "1.0.0",
"productName": "surfing-products",
"productVersion": "1.0.0",
"devOrgName": "bluebottle-boards",
"resourceName": "/stocklist",
"timeToServeRequest": 248,
"bytesSent": 115,
"requestProtocol": "https",
"requestMethod": "GET",
"uriPath": "/macs-shack/sb/surf/stocklist",
"queryString": "",
"statusCode": "200 OK",
"requestHeaders": "",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36",
"requestBody": "",
"responseHeaders": "",
"responseBody": "",
"latency": "Initialization=0ms : Start=10ms : PlanRateLimits=4ms : Plan Limit=2ms : Finservice=225ms : PlanRateLimits=7ms",
"rateLimit": {
"per-minute": {
"limit": "100",
"count": "4",
"period": "60",
"reject": "false",
"shared": "true"
}
},
"logPolicy": "activity",
"orgName": "macs-shack",
"resourcePath": "get",
"productTitle": "Surfing Products",
"clientGeoIp": {
"ip": "9.20.152.215",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"continent_code": "NA",
"region_name": "NC",
"city_name": "Durham",
"postal_code": "27709",
"latitude": 35.994,
"longitude": -78.8986,
"dma_code": 560,
"area_code": 919,
"timezone": "America/New_York",
"real_region_name": "North Carolina",
"location": [
-78.8986,
35.994
]
},
"gatewayGeoIp": {
"ip": "9.20.98.109",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"continent_code": "NA",
"region_name": "NC",
"city_name": "Durham",
"postal_code": "27709",
"latitude": 35.994,
"longitude": -78.8986,
"dma_code": 560,
"area_code": 919,
"timezone": "America/New_York",
"real_region_name": "North Carolina",
"location": [
-78.8986,
35.994
]
}
}
]
}