FeatBit OpenFeature 为节点提供商.js SDK
导言
这是 OpenFeature 供应商 节点.js 服务器-Side SDK 100%的开源功能旗管理平台 费特比特。 。 。 .
FeatBit OpenFeature供应商主要设计用于网络服务器和应用等多用户系统. 它并非用于桌面和嵌入式系统应用程序.
跟踪
在注册和初始化提供者后,使用 OpenFeature 客户端跟踪事件:
const client = OpenFeature.getClient();
const context = { targetingKey: 'user-123' };
client.track('page-view', context);
client.track('purchase', context, { value: 99.9 });
跟踪使用与旗帜评价相同的上下文对用户绘图,包括: targetingKey
(或遗产) key, (中文(简体) ), name,和自定义用户属性。 OpenFeature 之前合并上下文
将其传递给提供者,因此也可以使用客户端或全局上下文上的用户密钥集.
可选 value 转至 FeatBit 作为数值;省去时
FeatBit SDK 默认为 1。数值为 0 被保存下来。 其他跟踪活动详情
被忽略,因为 FeatBit SDK 只支持一个数字度量值.
track 返回时 void 无需等待。 活动由FeatBit提供
SDK事件处理器. 打电话 await OpenFeature.close() 在应用程序关闭时冲出
待定活动和释放资源.
支持的节点版本
这个版本的FeatBit OpenFeature提供商与Node.js版本16及以上兼容.
开始
安装
npm install @openfeature/server-sdk
npm install @featbit/node-server-sdk
npm install @featbit/openfeature-provider-node-server
快开始
import { OpenFeature, ProviderEvents } from '@openfeature/server-sdk';
import { FbProvider } from '@featbit/openfeature-provider-node-server';
const provider = new FbProvider({
sdkKey: '<your-sdk-key>',
streamingUri: '<your-streaming-uri>',
eventsUri: '<your-events-uri>'
});
OpenFeature.setProvider(provider);
// If you need access to the FbClient, then you can use provider.getClient()
// Evaluations before the provider indicates it is ready may get default values with a
// CLIENT_NOT_READY reason.
OpenFeature.addHandler(ProviderEvents.Ready, (eventDetails) => {
console.log(`Changed ${eventDetails.flagsChanged}`);
});
// The FeatBit provider supports the ProviderEvents.ConfigurationChanged event.
// The provider will emit this event for any flag key that may have changed (each event will contain
// a single key in the `flagsChanged` field).
OpenFeature.addHandler(ProviderEvents.ConfigurationChanged, async (eventDetails) => {
const client = OpenFeature.getClient();
const value = await client.getBooleanValue('ff1', false, {targetingKey: 'my-key'});
console.log({...eventDetails, value});
});
// (async () => {
// // When the FeatBit provider is closed it will flush the events on the FbClient instance.
// // This can be useful for short lived processes.
// await OpenFeature.close();
// })();