Bucketeer - OpenFeature JS供应商(英语:OpenFeature JS supposed)
这是JS官方的 OpenFeature 供应商,用于访问您的功能旗 巴克特尔。 。 。 .
巴克特尔 是一个开源平台,由 网络代理商 帮助各小组作出更好的决定,减少部署准备时间,并通过特征旗帜释放风险。 Bucketeer提供先进的功能,如暗发射和相继推出,根据用户属性,设备,以及其他部分进行有限的发布.
与 打开Feature SDK 您可以在您的网页、 React 和 React Industrial 应用程序中评估您的特征标记.
[尖叫声] 这是一个β版本。 在一般发布前可以引入中断更改.
有关巴克特尔旗帜管理的文件,参见 巴克特文档网站。 。 。 .
目录
网络( JavaScript / TypeScript)
安装(网络)
npm install @bucketeer/openfeature-js-client-sdk
[注] npm 第7及以上版本将自动安装所需的对等依赖 :
@openfeature/web-sdk财务报告和审定财务报表@bucketeer/js-client-sdk。 。 。 . 如果您对缺失的端点依赖性有错误, 请手动安装 :npm install @openfeature/core @openfeature/web-sdk @bucketeer/js-client-sdk
用法 (网络)
配置
使用 defineBKTConfig 创建您的配置.
import { defineBKTConfig } from '@bucketeer/openfeature-js-client-sdk';
const config = defineBKTConfig({
apiEndpoint: 'BUCKETEER_API_ENDPOINT',
apiKey: 'BUCKETEER_API_KEY',
featureTag: 'FEATURE_TAG',
appVersion: '1.2.3',
fetch: window.fetch,
})
看我们的 文档 用于更多的 SDK 配置.
初始化
初始化并设置 Bucketeer 供应商到 OpenFeature .
import { OpenFeature } from '@openfeature/web-sdk';
import { defineBKTConfig, BucketeerProvider } from '@bucketeer/openfeature-js-client-sdk';
const config = defineBKTConfig({
apiEndpoint: 'BUCKETEER_API_ENDPOINT',
apiKey: 'BUCKETEER_API_KEY',
featureTag: 'FEATURE_TAG',
appVersion: '1.2.3',
fetch: window.fetch,
})
const initEvaluationContext = {
targetingKey: 'USER_ID',
app_version: '1.2.3',
}
await OpenFeature.setContext(initEvaluationContext)
const provider = new BucketeerProvider(config)
await OpenFeature.setProviderAndWait(provider)
评估特征旗
提供者被设定后,提供者的地位是 ClientProviderEvents.Ready,您可以使用 OpenFeature 客户端来评价一个特性旗.
const client = OpenFeature.getClient();
// boolean flag
const flagValueBool = client.getBooleanValue('my-feature-flag', false);
// string flag
const flagValueStr = client.getStringValue('my-feature-flag', 'default-value');
// number flag
const flagValueNum = client.getNumberValue('my-number-flag', 0);
// object flag
const flagValueObj = client.getObjectValue('my-object-flag', {});
详情请见 OpenFeature Web SDK 文档。 。 。 .
更新评价背景
评价上下文允许客户端指定Bucketeer用来评价特征旗帜的上下文数据.
这个 targetingKey 是用户ID(唯一ID),不能为空.
如果用户属性发生变化,可以使用新属性来更新评价上下文.
const newEvaluationContext = {
targetingKey: 'USER_ID',
app_version: '2.0.0',
age: 25,
country: 'US',
}
await OpenFeature.setContext(newEvaluationContext)
[尖叫声] 改变
targetingKey在目前执行的Bucketer Provider中不支持.
要更改用户ID,必须去掉并重新初始化Bucketeer Provider.
await OpenFeature.clearProviders()
await OpenFeature.clearContext()
// Reinitialize the provider with new targetingKey
const newEvaluationContext = {
targetingKey: 'USER_ID_NEW',
app_version: '2.0.0',
age: 25,
country: 'US',
}
const config = defineBKTConfig({
apiEndpoint: 'BUCKETEER_API_ENDPOINT',
apiKey: 'BUCKETEER_API_KEY',
featureTag: 'FEATURE_TAG',
appVersion: '1.2.3',
fetch: window.fetch,
})
await OpenFeature.setContext(newEvaluationContext)
const provider = new BucketeerProvider(config)
await OpenFeature.setProviderAndWait(provider)
反应
反应指示请见我们 反应文档。 。 。 .
原生反应
请见我们 反应本地文档。 。 。 .
实例
我们提供几个例子来帮助您从巴克特OpenFeature供应商开始:
- 网络( Vite + TypeScript):一个使用Vite和TypeScript的简单的网络应用程序.
- 反应( Vite + TypeScript): 使用Vite和TypeScript的回放应用程序.
- 原生反应( Expo): 使用 Expo 的回放原生应用程序.
每个实例都包含一个README,并附有如何运行的指令.
捐款
我们会为你贡献给巴克特 并帮助改善它! 任何人都可以使用和享受它!
请遵照我们的贡献指南 这里。 。 。 .
发展
环境
- 小时
- 让它通过
corepack enable
- 让它通过
- 节点.js
- 检查
./.node-version
- 检查
惠璶 .env 用于提供 api 机密的文件.
刚刚复制 env.template 并重命名为 .env,然后用你的秘密更新它.
许可证
Apache 许可证 2.0, 见 自由主义。 。 。 .