Optional request parameters(オプションの要求パラメータ)--Moyaドキュメント
1395 ワード
Optional request parameters(オプションの要求パラメータ)
api/usersを呼び出したいとしたら?Limit=10もapi/usersを呼び出したい場合:public enum MyService {
case users(limit: Int?)
}
extension MyService: TargetType {
//...
public var parameters: [String: Any]? {
switch self {
case .users(let limit):
var params: [String: Any] = [:]
params["limit"] = limit
return params
default:
return nil
}
}
//...
}
この場合params["limit"=nilはオブジェクトのlimitキーワードを除去します
これは、メソッドが異なる属性で定義ため、任意のタイプの要求に適している.extension MyService: TargetType {
//...
public var method: Moya.Method {
switch self {
case .emailAuth:
return .post
default:
return .get
}
}
//...
}
重要なヒント
上記のようにオプションパラメータを追加する必要があります.押すとオプションのパラメータは削除されません//...
// This won't work!
public var parameters: [String: Any]? {
switch self {
case .users(let limit):
let params: [String: Any] = ["limit": limit]
return params
default:
return nil
}
}
//...
この場合、limitがnilの場合、URLリクエストはapi/usersになりますか?limit=nil
このセクションの核心をまとめます。
public enum MyService {
case users(limit: Int?)
}
extension MyService: TargetType {
//...
public var parameters: [String: Any]? {
switch self {
case .users(let limit):
var params: [String: Any] = [:]
params["limit"] = limit
return params
default:
return nil
}
}
//...
}
extension MyService: TargetType {
//...
public var method: Moya.Method {
switch self {
case .emailAuth:
return .post
default:
return .get
}
}
//...
}
//...
// This won't work!
public var parameters: [String: Any]? {
switch self {
case .users(let limit):
let params: [String: Any] = ["limit": limit]
return params
default:
return nil
}
}
//...