go-feature-flag-web 开源软件服务商
关于这个提供者
GO 特性旗 提供者允许您与 GO 特性旗下实例连接 @openfeature/web-sdk。 。 。 .
这个提供者和 @openfeature/go-feature-flag-provider 它使用一个 静态评价背景。 。 。 .
这一提供者对于客户方面的实施来说更具有可持续性.
如果你想知道更多这个模式, 我鼓励你读这个 博客文章。 。 。 .
GO特色旗是什么来着?
GO Feature Flag是一款简单,完整而轻巧的自发托管的地物旗解决方案,100%开放源码.
我们的重点是避免任何复杂的基础设施工作来使用GO地物旗.
这是一个完全的特性标记解决方案,可以仅针对一组用户,使用任何类型的旗帜,将您的配置存储在不同位置并具有高级推出功能. 也可以收集旗下使用数据,并被通知配置变化.
安装提供者
npm install @openfeature/go-feature-flag-web-provider @openfeature/web-sdk
如何用供养?
const evaluationCtx: EvaluationContext = {
targetingKey: 'user-key',
email: '[email protected]',
name: 'John Doe',
};
const goFeatureFlagWebProvider = new GoFeatureFlagWebProvider({
endpoint: endpoint,
// ...
}, logger);
await OpenFeature.setContext(evaluationCtx); // Set the static context for OpenFeature
OpenFeature.setProvider(goFeatureFlagWebProvider); // Attach the provider to OpenFeature
const client = await OpenFeature.getClient();
// You can now use the client to use your flags
if(client.getBooleanValue('my-new-feature', false)){
//...
}
// You can add handlers to know what happen in the provider
client.addHandler(ProviderEvents.Ready, () => { ... });
client.addHandler(ProviderEvents.Error, () => { //... });
client.addHandler(ProviderEvents.Stale, () => { //... });
client.addHandler(ProviderEvents.ConfigurationChanged, () => { //... });
可用选项
| 选项名称 | 类型 | 默认 | 说明 |
|---|---|---|---|
| 结束点 | 字符串 | 端点是您的 GO 特性旗服务器所在的 URL . | |
| 时断时断 | 编号 | 0 = 无超时 | (可选的)超时是毫秒后等待服务器回复的时间. |
| 键 | 字符串 | (可选的)如果配置 GO 特性旗以认证请求, 您应该向提供者提供 API 密钥 。 请让中继代理的管理员提供 API 密钥 . | |
| 网络存储器重试InitialDelay | 编号 | 100个 | (可选) 初始延迟在毫秒内等待, 然后再重试连接 websocket |
| websocket 重试 延后多功能器 | 编号 | 2个 | 每次失败后( 可选) websocket Retry Initial Delay 的乘数 (例:第1次接通再试会后为100ms,后为200ms后为第二,后为400ms后为第三. ) |
| 网页存储程序 | 编号 | 10个 | (可选)在考虑无法访问的 websocket 之前最多重复次数 |
重新连接
如果连接到 GO Feature Flag 实例失败, 提供者将尝试用指数回放重联 .
这个 websocketMaxRetries 可以指定重新连接的行为.
事件流
这个 GoFeatureFlagWebProvider 从 GO 特性旗接收变化事件.
结合了web SDK中的事件API,这可以订阅客户端的旗下值变化.
client.addHandler(ProviderEvents.ConfigurationChanged, (ctx: EventDetails) => {
// do something when the configuration has changed.
// ctx.flagsChanged contains the list of changed flags.
});
贡献
大楼
运行 nx package providers-go-feature-flag-web 来建造图书馆.
运行单元测试
运行 nx test providers-go-feature-flag-web 通过 欢乐。 。 。 .