DynuREST
面对现实...一个只返回文本的 REST API 不算太现代。DynuREST 将 Dynu.com IP 更新 API 的文本响应转换为合适的 HTTP 状态码和有意义的错误。
安装
CocoaPods
pod 'DynuRest', '~> 1.3'
Swift 包管理器
.package(url: "https://github.com/richardpiazza/DynuREST", .upToNextMinor(from: "1.3.0"))
使用
API.swift
围绕 CodeQuickKit.WebAPI 提供了一层封装,用于处理用户名密码凭据组合。update()
函数将执行查询并解析返回的 ResponseCode
。
典型用法
let api = API(username: "username", password: "password")
api.update(ip: "127.0.0.1") { (statusCode, headers, data, error) in
guard error == nil else {
// Process Error
return
}
guard statusCode < 300 else {
// Non-OK response
return
}
// All good
}
不安全的用法
api.dynu.com 当前版本的 SSL 证书与 iOS11.0 和 macOS10.13 不兼容。为了执行更新,必须使用不安全的 HTTP 连接。为了使用此连接,您的应用程序必须明确定义 Info.plist 中的 App Transport Security 来绕过该安全设置。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>api.dynu.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
ResponseCode.swift
表示从 Dynu.com API 应返回的状态代码。使用 init(stringValue:) 和测试响应来解析正确的响应。
String.swift
Swift.String 扩展,用于 IPv4 和 IPv6 地址的正则表达式匹配。