完全にメモ用なのですが、あまり情報が整理されてなかったので投稿。
v1.2.0ぐらいからmultipart/form-data
がサポートされているのでそれを利用する。
詳細:multipart/form-data support
https://github.com/ishkawa/APIKit/pull/128
抜粋
struct PostImageRequest: RequestType {
typealias Response = ImageReponse
var imageFileURL: NSURL // "file://~/image.jpg"
var imageData: NSData
let requestBodyBuilder: RequestBodyBuilder = .MultipartFormData
let method: HTTPMethod = .Post
let path = "/api/image"
var parameters: [String : AnyObject] {
return [
"image1" : imageFileURL,
"image2" : MultipartFormDataSerialization.Parameter(data: imageData, mimeType: "image/jpeg")
"flag" : true
]
}
}
自分はRailsのAPIに投げたので、これをcarrierwaveを利用してアップロードしました。
ストロングパラメーターを使わないとencoding周りでエラーが出たので、同様の症状出た人は気をつけて下さい。
S3にダイレクトで上げる方法もあるみたいなので実際にやるときはそっちをやろうかな。