Sqids (发音为 "squids") 是一个小型库,可让您从数字生成唯一 ID。它适用于链接缩短、快速且 URL 安全的 ID 生成,以及解码回数字以加快数据库查找。
特性
适用于
不适用于
将以下依赖项添加到您的 Swift Package.swift
dependencies.append(
.package(url: "https://github.com/sqids/sqids-swift.git", from: "0.1.2")
)
从 sqids
框架导入 Sqids
结构体
import sqids
let sqids = Sqids()
简单的编码和解码
let sqids = Sqids()
let id = try sqids.encode([1, 2, 3]) // "86Rf07"
let numbers = try sqids.decode(id) // [1, 2, 3]
注意 🚧 由于算法的设计,多个 ID 可以解码回相同的数字序列。如果您的设计中 ID 的规范性很重要,您必须手动重新编码解码后的数字,并检查生成的 ID 是否匹配。
强制 ID 的最小长度
let sqids = Sqids(minLength: 10)
let id = try sqids.encode([1, 2, 3]) // "86Rf07xd4z"
let numbers = try sqids.decode(id) // [1, 2, 3]
通过提供自定义字母表来随机化 ID
let sqids = Sqids(alphabet: "FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE")
let id = try sqids.encode([1, 2, 3]) // "B4aajs"
let numbers = try sqids.decode(id) // [1, 2, 3]
防止特定词语出现在自动生成的 ID 中的任何位置
let sqids = Sqids(blocklist: ["86Rf07"])
let id = try sqids.encode([1, 2, 3]) // "se8ojk"
let numbers = try sqids.decode(id) # [1, 2, 3]