TEFeatureToggles 0.1.1

TEFeatureToggles 0.1.1

True Engineering 维护。



  • True Engineering

用于与特性开关门户交互的 SDK

用于与微服务交互的 SDK,该服务允许在不同环境下操作不同项目的特性开关。

连接和使用 SDK

初始化 SDK

要使用 SDK,需要用以下参数初始化它

  • storageType - 特性开关存储类型。已实现 3 种存储类型:.inMemory - 将特性开关保存在会话内存中 .userDefaults - 将特性开关保存在 UserDefaults 中 .custom(FeatureTogglesStorage) - 将特性开关保存在用户自定义的 SDK 存储中,实现 FeatureTogglesStorage 协议,默认为 userDefaults
  • headerKey - 在请求响应中确定特性开关值是否改变的哈希头部。默认为 FF-Hash
  • baseUrl - 服务器 URL。是必填项。
  • apiFeaturePath - 获取特性开关的请求方法的路径。默认为 /api/features
  • featuresHeaders - 特性开关请求的附加头部字典。默认为空。如果您不使用请求拦截器,您可以在该参数中传递必要的头部,例如令牌。
    let featureTogglesSDK = FeatureTogglesSDK(baseUrl: "your link")

与存储交互

  • 要获取存储中的标志列表,请使用函数 getFlags
  • 要获取存储中的标志状态,请使用函数 isEnabled
  • 要强制刷新存储,请使用函数 loadRemote
  • 要验证哈希与存储中的哈希是否一致,请使用函数 obtainHash
  • SDK 实现了对存储状态更改的响应
    extension YourDelegateClass: FeatureTogglesSDKDelegate {
        func didFeatureTogglesStorageUpdate() {
            // Your actions
        }
    }

拦截器

  • 要自动跟踪特性开关的变化,请使用函数 startInterceptor 启动拦截器。可以通过函数 stopInterceptor 禁用拦截器
  • 要发送某个头部,如令牌,到所有请求,可以使用以下函数 addInterceptorHeader
  • 要实现对请求的自主反应,例如日志记录,请设置以下变量
  featureTogglesSDK.interceptRequest = { request in
      print("Intercept request: \(request.url)")
  }
  
  featureTogglesSDK.interceptResponse = { response in
      print("Intercept response: \(response.url)")
  }

安装

Swift Package Manager

创建一个 Package.swift 文件。

// swift-tools-version:5.0

import PackageDescription

let package = Package(
  name: "YourProject",
  dependencies: [
    .package(url: "https://github.com/True-Engineering/FeatureTogglesSDK_iOS.git", branch: "master"),
  ],
  targets: [
    .target(name: "YourProject", dependencies: ["TEFeatureToggles"])
  ]
)
$ swift build

CocoaPods

TEFeatureToggles 通过 CocoaPods 提供。要安装,只需将以下行添加到您的 Podfile 中

pod 'TEFeatureToggles'

许可证

此库使用 Apache 2.0 许可证。有关更多信息,请参阅 LICENSE 和 NOTION 文件。

技术栈