Alamofireのマネージャーを拡張するために@Silmarilの回答を修正しました。このソリューションでは、EVReflection を使用してオブジェクトを直接シリアル化します。
//Extend Alamofire so it can do POSTs with a JSON body from passed object
extension Alamofire.Manager {
public class func request(
method: Alamofire.Method,
_ URLString: URLStringConvertible,
bodyObject: EVObject)
-> Request
{
return Manager.sharedInstance.request(
method,
URLString,
parameters: [:],
encoding: .Custom({ (convertible, params) in
let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
mutableRequest.HTTPBody = bodyObject.toJsonString().dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
return (mutableRequest, nil)
})
)
}
}
次に、次のように使用できます。
Alamofire.Manager.request(.POST, endpointUrlString, bodyObject: myObjectToPost)