import CoreLocation
import ApiSwift
import SwiftSerialize
let url = NSURL(string: "https://:8000/Api.php")
let obj1 = TestClass(string: "Test str", number: 4.5, location: CLLocationCoordinate2D(latitude: 33.2, longitude: 44), array: [3, 5, 84, 23], map: ["key1": ["key2" : 82]], set: [3.3, 55.3, 32.1])
let obj2 = 4321
let params:[Any] = [obj1, obj2]
let additionalParams:[String: String] = [
"id": "1234567890",
]
let request = NSMutableURLRequest(url: url!, className: "MyClass", functionName: "MyFunc", params: params, additionalParams: additionalParams)
NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) -> Void in
// handle response
let object = Serializer.deserialize(data!)
}.resume()
此示例调用了 MyClass 类中的 MyFunc 静态函数。2 个参数的类型为 TestClass 和整数。您也可以在 additionalParams 中添加传统的 HTTP 参数到请求中。
在发送到服务器之前,将作为参数传递的对象序列化为 JSON。服务器将反序列化对象并在服务器上重新创建它们。然后,调用指定的静态类函数并使用反序列化的对象。
此库使用 SwiftSerialize 对象序列化。它还可以几乎无需您的工作就反序列化对象到类(您自己创建或内置的 Swift 类)。前往那里了解如何充分利用这个库。
目前可以处理此请求的唯一服务器端语言是 PHP。
要运行示例项目,请克隆仓库,首先从 Example 目录运行 pod install
。
您还需要取消 SwiftSerialize/Initializer.swift(SwiftSerialize pod)中的注释行,才能运行测试用例。
ApiSwift 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile:
pod "ApiSwift"
接受所有有效的拉取请求、功能请求和其他问题。想要帮忙,请提问!
ApiSwift 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。