评估 REST API
评估 REST API
演示代理 REST API 功能的 Python 代码示例。
📘 注意
REST API 文档是通过 OpenAPI(Swagger)规范定义的,可以在此处查看。
启动 HTTP 会话
向 云眼 Agent 发出的每个请求都在 云眼 SDK 密钥的上下文中。SDK 密钥将 API 请求映射到特定的云眼灰度发布(特性标帜)AB实验项目和环境。
📘 注意
可以在 app.eyeofcloud.com 的**“设置**>环境”>“SDK 密钥”下找到 SDK 密钥。请记住,每个环境都有不同的 SDK 密钥。
我们可以使用以下对象设置全局请求标头:requests.Session
Python
import requests s = requests.Session() s.headers.update({'X-云眼-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测试结果。
默认情况下,如果该标帜只是目标投放的一部分而不是实验,则不会发送决策事件。