我想使用生成的swift-client发布图像.经过大量的研究,我认为指定这个的最好方法是:
/user/profilepicture:
put:
description: |
upload profile picture of user
consumes:
- multipart/form-data
parameters:
- name: profilePhoto
in: formData
type: file
Run Code Online (Sandbox Code Playgroud)
生成的swift客户端函数签名是:
public class func usersProfilepicturePut(profilePhoto profilePhoto: NSURL? = nil, completion: ((error: ErrorType?) -> Void))
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是NSURL类型.原因是看起来很难得到NSURL一个UIImage,特别是如果照片是从相机拍摄的UIImagePickerController.
然后我再次不想将参数的类型更改为字符串,并使用base64编码,因为它会增加很多开销以将图像转换为字符串.
NSURL从a 获得UIImage.第二个问题存在,但是[ 获取带有Photos Framework的相机拍摄的照片的URL不会返回URL而是返回字符串标识符.类似问题的其他答案都建议保存图像,然后再次检索它只是为了得到一个NSURL看似hacky.那么我应该将生成的实现更改为接受NSData类型,还是有更好的建议?看起来在撰写本文时 swagger API 正在将 NSData 编码为 Base64 到帖子中。因此,如果您不想使用 Base64 或者不想扩展/修改 swagger 生成的代码,请避免这种情况。
要发送二进制数据,您需要本地文件的 NSURL。
| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |