要向 Cloudflare 的 Radar API 发出第一个请求,您必须首先获取您的 API 令牌。创建一个 Custom Token,在 Permissions(权限) 组中选择 Account > Radar,并将访问级别选为 Read。
获得令牌后,您就可以向 Radar 的 API 发出第一个请求了,地址为 https://api.cloudflare.com/client/v4/radar/。
在以下示例中,我们将访问过去七天内设备类型(如移动端和桌面端流量)的全球百分比分布。有关更多信息,请参考 Get device types summary 端点:
curl "https://api.cloudflare.com/client/v4/radar/http/summary/device_type?dateRange=7d&format=json" \
--header "Authorization: Bearer <API_TOKEN>"成功的响应将类似于以下内容:
{
"success": true,
"errors": [],
"result": {
"summary_0": {
"desktop": "58.223483",
"mobile": "41.725833",
"other": "0.050684"
},
"meta": {
"dateRange": {
"startTime": "2022-10-26T14:00:00Z",
"endTime": "2022-11-02T14:00:00Z"
},
"normalization": "PERCENTAGE",
...
}
}
}此响应表示有 41% 的请求被归类为来自移动设备,而 58% 是桌面端流量。
前面的示例返回了来自机器人和人类的所有流量。然而,您可以通过添加 botClass=LIKELY_HUMAN 仅访问被归类为来自人类的流量(Cloudflare Radar ↗ 中的默认设置)。您还可以通过 botClass=LIKELY_AUTOMATED 仅访问来自机器人的流量(有关更多信息,请参考机器人分类)。例如:
curl "https://api.cloudflare.com/client/v4/radar/http/summary/device_type?dateRange=7d&botClass=LIKELY_AUTOMATED&format=json" \
--header "Authorization: Bearer <API_TOKEN>"运行上述命令,您能发现两者在移动端和桌面端流量分布上有什么不同吗?
Python ↗ 已经成为数据分析的标准语言之一。这里有一个关于如何使用 Requests ↗ 和 Pandas ↗ 库对相同数据进行图表绘制的快速示例。在这里,我们在参数中使用 format=csv 以方便 Pandas 导入。
import io
import requests
import pandas as pd
cf_api_url = "https://api.cloudflare.com/client/v4"
params = "dateRange=7d&format=csv"
my_token = "xxx" # TODO replace
r = requests.get(f"{cf_api_url}/radar/http/summary/device_type?{params}",
headers={"Authorization": f"Bearer {my_token}"})
df = pd.read_csv(io.StringIO(r.text))
df.plot(kind="bar", stacked=True)notebook ↗ 是一个基于 Web 的交互式计算应用程序,可以在一个单独的文档中结合文本、代码和代码输出(如数据图表)。参考 Radar 相关的 colaboratory notebook ↗ 获取更多关于如何在您自己的项目中使用 API 的示例。
参考进行比较来了解如何比较数据。