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?
设置自定义上传