LoginSignup
21
20

More than 5 years have passed since last update.

APIKitを利用してAPIに画像をアップロード

Last updated at Posted at 2016-05-05

完全にメモ用なのですが、あまり情報が整理されてなかったので投稿。

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にダイレクトで上げる方法もあるみたいなので実際にやるときはそっちをやろうかな。

21
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
20