评估 REST API
May 11, 2023About 2 min
评估 REST API
演示代理 REST API 功能的 Python 代码示例。
📘 注意
REST API 文档是通过 OpenAPI(Swagger)规范定义的,可以在此处查看。
启动 HTTP 会话
向 云眼 Agent 发出的每个请求都在 云眼 SDK 密钥的上下文中。SDK 密钥将 API 请求映射到特定的云眼灰度实验项目和环境。
📘 注意
可以在 app.eyeofcloud.com 的**“设置**>环境”>“SDK 密钥”下找到 SDK 密钥。请记住,每个环境都有不同的 SDK 密钥。
我们可以使用以下requests.Session
对象设置全局请求标头:
Python
import requests
s = requests.Session()
s.headers.update({'X-eyeofcloud-SDK-Key': 'YOUR-SDK-KEY'})
🚧
️重要事项
必须创建 HTTP 会话。以下示例将假定此会话正在维护。
获取当前环境配置
这/vi/config
' 终结点返回当前工作环境的清单。
Python
resp = s.get('http://localhost:8080/v1/config')
env = resp.json()
for key in env['featuresMap']:
print(key)
运行灰度标帜规则
作为标帜规则的一部分,决定终端节点将用户分桶为灰度标帜变体(在多个启用的变体或一个禁用的变体之间进行选择)。标帜规则允许:
- 使用 A/B 测试进行实验
- 使用有针对性的灰度标帜投放,逐步向选定的受众推出灰度标帜。
要运行标帜规则,请使用
Python
# decide 1 flag.
params = { "keys": "my-feature-flag" }
payload = {
"userId": "test-user",
"userAttributes": {
"attr1": "sample-attribute-1",
"attr2": "sample-attribute-2"
}
}
resp = s.post(url = 'http://localhost:8080/v1/decide', params=params, json=payload)
print(resp.json())
# multiple (bulk) feature flag decisions for specified flags.
# To decide ALL flags, simply omit keys params
payload = { "userId": "test-user" }
params = {"keys":"flag_1", "keys":"flag_2"}
resp2 = s.post(url = 'http://localhost:8080/v1/decide', params=params, json=payload)
print(json.dumps(resp.json(), indent=4, sort_keys=True))
决策 API 是一个 POST,用于向调用方发出有副作用的信号。也就是说,决策结果是发送到云眼分析的“决策”事件,用于分析A / B测试结果。
默认情况下,如果该标帜只是目标投放的一部分而不是实验,则不会发送决策事件。