Protocol
APIConfig
public protocol APIConfig
请求API
的设置
我们需要将实现这个协议,重写一些属性完成我们请求的配置。这个协议会默认实现一个简单的请求,请求方式为GET
,没有任何参数,没有任何Header
参数。
默认GET
请求参数编码为URLEncoding.default
,POST
的请求参数编码为JSONEncoding.default
上传文件的默认后缀名称为.png
比如一个简单的GET
的请求https://xxx.xxx.com/api/json?name=josercc
struct SampleApi: APIConfig {
var path: String { "/api/json" }
var parameters: [String : Any] {
[
"name":"josercc"
]
}
}
Default Implementations
method
var method:HTTPMethod
parameters
var parameters:[String:Any]?
headers
var headers:[String:String]?
encoding
var encoding:ParameterEncoding?
fileExtension
var fileExtension:String
uploadProgress
var uploadProgress:((Progress) -> Void)?
multipartFormData
var multipartFormData:MultipartFormDataHandle?
Requirements
method
var method:HTTPMethod
请求的方法默认为get
更多的支持的请求方式请查看HTTPMethod
相关信息
path
var path:String
请求的路径
需要和API.host
组成一个请求链接
比如https://xxx.xxx.com/api/json?name=josercc
如果设置API.hos=https://xxx.xxx.com
,那么此时的path="/api/json"
如果设置API.hos=https://xxx.xxx.com/
,那么此时的path="api/json"
parameters
var parameters:[String:Any]?
请求的参数
如果请求为GET
则为Path Parameter
如果请求为POST
则为Body Parameter
headers
var headers:[String:String]?
请求的头部
设置公共的头部信息请在API.defaultHeadersConfig
进行设置
encoding
var encoding:ParameterEncoding?
请求的参数编码 默认get
方法为URLEncoding.default
, post
为JSONEncoding.default
fileExtension
var fileExtension:String
文件上传的后缀 默认为.png
UploadProgressHandle
typealias UploadProgressHandle = (_ progress:Progress) -> Void
上传进度的回掉
Parameters
Name | Type | Description |
---|---|---|
progress | 上传的当前进度 |
uploadProgress
var uploadProgress:UploadProgressHandle?
上传文件的进度
MultipartFormDataHandle
typealias MultipartFormDataHandle = (_ multipartFormData:MultipartFormData) -> Void
上传文件设置自定义参数的回掉
Parameters
Name | Type | Description |
---|---|---|
multipartFormData | 上传文件 |
multipartFormData
var multipartFormData:MultipartFormDataHandle?
设置自定义上传