SearchbaseSDK 是一个强大的 Swift SDK,可以将 Searchbase API 集成到您的 macOS、iOS、tvOS 和 watchOS 应用程序中。它提供了一种与 Searchbase API 互动的便捷方式,使您能够在应用中构建复杂搜索体验。
- 易于集成 Searchbase API
- 支持 macOS、iOS、tvOS 和 watchOS
- 网络调用异步函数
- 支持过滤、排序和分页的定制搜索选项
- 详细的错误处理
- iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+
- Swift 5.0+
您可以通过 CocoaPods 安装 SearchbaseSDK。将以下行添加到您的 Podfile
中:
pod 'SearchbaseSDK', '~> 1.0.0'
然后运行
pod install
您也可以使用 Swift 包管理器 集成 SearchbaseSDK。将以下内容添加到您的 Package.swift
文件中:
dependencies: [
.package(url: "https://github.com/searchbase-dev/SearchbaseSDK.git", from: "1.0.0")
]
首先,导入 SDK 并使用您的 API 令牌初始化它
import SearchbaseSDK
@available(macOS 10.15, iOS 13.0, *)
let searchbase = SearchbaseSDK(apiToken: "your-api-token")
要执行搜索,请创建一个 SearchOptions
实例并调用 search
方法
let options = SearchOptions(index: "your_index", filters: nil, sort: nil, select: nil, limit: 10, offset: 0)
Task {
do {
let response: SearchResponse<YourModel> = try await searchbase.search(options: options)
print("Total records: \(response.total)")
print("Records: \(response.records)")
} catch {
print("Error: \(error)")
}
}
要处理分页并检索所有结果,请使用 searchAll
方法
Task {
do {
for try await records in searchbase.searchAll(options: options) {
print("Fetched \(records.count) records")
}
} catch {
print("Error: \(error)")
}
}
定义您的模型以匹配预期的响应结构
struct YourModel: Decodable {
let id: String
let name: String
// Other properties...
}
SDK 为各种场景提供了详细的错误处理
public enum SearchError: Error, CustomStringConvertible {
case invalidURL
case networkError(Error)
case noData
case decodingError(Error)
case apiError(String)
case unexpectedResponse(Int)
public var description: String {
switch self {
case .invalidURL:
return "Invalid URL for the API request."
case .networkError(let error):
return "Network error occurred: \(error.localizedDescription)"
case .noData:
return "No data received from the API."
case .decodingError(let error):
return "Failed to decode the API response: \(error.localizedDescription)"
case .apiError(let message):
return "API error: \(message)"
case .unexpectedResponse(let statusCode):
return "Unexpected response from the API. Status code: \(statusCode)"
}
}
}
SearchbaseSDK 根据 MIT 许可证授权。有关更多信息,请参阅 LICENSE 文件。
欢迎贡献!请发起一个问题或提交一个带有您改进的拉取请求。
有关支持或任何问题,请通过以下邮箱联系:[email protected]